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"]