码迷,mamicode.com
首页 > Web开发 > 详细

JS -- 正则

时间:2015-08-06 23:51:23      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

JS – 正则

JS – 正则

正则表达式的写法

var reg = /lf(abc)/gmi;                 // 注意没有引号
var reg = new RegExp("(\\d){4}", "gi"); // 好恶心的写法\\, 注意有引号

g: 全局, 表示搜索整个字符串, 如果没有这个, 那么就会匹配一个然后退出
m: 多行

var str = "lf\nlf";
var reg = /^lf/gi/;   # 只会匹配一个
var reg = /^lf/gim/;  # 匹配两个, 匹配一行之后, 继续匹配

i: 忽略大小写

匹配到的结果

var str = ‘abcdabcdabcd def‘;
var reg = /([a-z]{3})d/gi;

可以捕获分组

var res1 = ‘‘;
while (res1 = reg.exec(str)) {
    document.write(res1[0] + ‘, ‘ + res1[1] + ‘<br>‘);
}
// abcd, abc
// abcd, abc
// abcd, abc

不捕获分组

var res2 = str.match(reg);
for (var i = 0; i < res2.length; i++) {
    document.write(res2[i] + ‘<br>‘);
}
// abcd
// abcd
// abcd

总结

对于 var reg = /^(lf)abc/gmi; 他会将分组信息放进 1, 2,…等下标数组里

while (res = reg.exec(str)) {
    document.write(res[0] + ‘<br>‘);   // 表示匹配到的一整条
    document.write(res[1] + ‘<br>‘);   // 表示 第一个分组
}
var str = ‘abc‘;
var reg = /abc/gi;
var arr = str.match(reg);                // 返回匹配到的, 不会处理分组
alert(arr[0]);

替换 replace

var str = ‘abc‘;
var reg = /abc/gi;                       // 主要不要有 ‘‘
var news = str.replace(reg, ‘AAA‘);      // abc 替换为 AAA
var reg = /(.)\1+/gi;
var res = reg.replace(reg, "$1");        // 获取 分组
alert(res);

获取输入来匹配 (从输入框中输入正则, 并输出匹配)

var new_reg = ‘/‘ + reg.value + ‘/gi‘;
strs.value = regs.value;
strs.value = regs.value.replace(eval(new_reg), str.value);

var new_reg = new RegExp(reg.value, ‘gi‘);           // 支持 \d
strs.value = regs.value;
strs.value = regs.value.replace(new_reg, str.value);

test

检测一个字符串中, 是否满足正则表示, 返回 bool

var str = ‘abc‘;
var reg = /ab/;
alert(reg.test(str));

JS -- 正则

标签:

原文地址:http://www.cnblogs.com/sunznx/p/4709328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!