javascript 正则匹配

javascript 正则匹配
1.定义方法
有两种方法
1.1.构造函数法

var reg=new RegExp('<%[^%>]+%>','g');

1.2.字面量法

var reg=/<%[^%>]%>/g;

匹配范围:
g:全局匹配,全文搜索
i:忽略大小写
m:多行搜索
2.使用方法
javascript中正则匹配有3个方法,match,exec,test。
2.1.match
match是字符串的一个方法,接收一个RegExp对象做为参数,其他的是RegExp对象的方法,接收一个字符串参数。
2.2.test
在string中找到匹配regExp的字符串则返回true,没找到匹配的字符串则返回false

var str = 'helloworld';
var regStr = /^l+o$/g;
var reg = new RegExp(regStr);
reg.test(str);//false

2.3.exec
当regExp没有全局标志时,其返回值为字符串数组:数组的第0号元素为刚匹配到的字符串,如果regExp有子表达式,则数组第1号元素为regExp的第一个子表达式,第2号元素为regExp的第二个字表达式…以此类推。

3.扩展使用
3.1.replace

var str = 'helloLili';
console.log(str.replace('l','~'));//只替换第一个 he~loLili
console.log(str.replace(/l/g,'~'));//全文搜索替换,区分大小写 
//he~~oLi~i
console.log(str.replace(/l/gi,'~'));//全文搜索替换,不区分大小写 
//he~~o~i~i
console.log(str.replace(/l/g,function(a,b,c){
    return a + '%';
}));
//第二个参数使用function(参数为:匹配到的字符串、正则表达式分组内容、index、原字符串),灵活性更高 hel%l%oLil%i

3.2.split

var str = '123ddf34dte453d';
console.log(str.split('d'));//["123", "", "f34", "te453", ""]
console.log(str.split(/\d/));//["", "", "", "ddf", "", "dte", "", "", "d"]

参考文章:
1.JavaScript 正则表达式上——基本语法
2.>JavaScript正则表达式下——相关方法

此条目发表在JavaScript分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注