正则匹配模式汇总
正则表达式提供另一种强大的文本搜索和处理方式,对于正则表达式,不同语言有着不同的实现,JavaScript采用的Perl5的语法。对于极少数匹配模式是简单的全字符文本的情况,我们往往会采用indexOf这样的方法,但是多数情况下,匹配模式往往都更为复杂。 1、语法1)在JavaScript中我们可以采用内建构造器RegExp()来创建正则表达式的对象; varre =newRegExp("j.*t") 2)当然除了使用RegExp对象,我们可以采用更为简便的正则文本标记法 varre = /j.*t/ 2、RegExp对象属性1、global: 是否打开全局搜索(默认是false,只匹配到第一个) 2、ignoreCase: 设置大小写相关性 3、multiline: 设置是否跨行搜索 4、lastIndex:搜索的开始索引位置,默认为0 5、source: 用于存储正则表达式的匹配模式 除了laseIndex外,上面所有属性在设置之后都不再被修改,也就是说: var re = /j.*t/ig; re.global // true; re.global = false; re.global // true; 3、RegExp对象的方法RegExp对象中有两种方法可用于查找匹配内容的方法:test()和exec()。这两种方法的参数都是一个字符串,test()方法返回的是一个布尔值、而exec()返回的由匹配到字符串所组成的数组。 /j.*t/.test("JavaScript"); //false
/j.*t/i.test("JavaScript"); //true
/j.*t/i.exec("JavaScript")[0]; //"JavaScript"
以正则表达式为参数的字符串的方法 1)match() 返回一个包含匹配内容的数组 2)search() 返回的是第一个匹配内容的所在位置 3)replace() 能将匹配的文本替换程指定字符串 4)split() 根据正则分割若干个数组元素 match()方法var s = new String('HelloJavaScriptWorld'); s.match(/a/) //["a"] s.match(/a/g) // ["a","a"] s.match(/j.*a/i) // ["Java"] search()方法search方法会返回匹配字符串的索引位置(从0开始) s.search(/j.*a/i); //5 replace()方法replace用于将匹配的文本替换掉 s.replace(/[A-Z]/g,'_$&'); //_Hello_JavaScript_World ①$&保留原来匹配对象并在前面加_ ②&1表示匹配的第一组以此类推 split()方法var csv = "one,two,three,four"; csv.spilt(/s*,s*/); //["one","two","three","four"] ①s*用于匹配0个或者多个空格 4、回调式替换当我们需要执行一些特定的替换操作时,也可以通过返回字符串的函数来完成。 var global; var callback = function () { global = argumens; return argumens[1] + 'a' + argumens[2] + 'dot' + arguments[3]; } var re = /(.*)@(.*).(.*)/; "OkayChen@cnblogs.com".replace(re,callback); //OkayChen at cnblogs dot com 5、正则匹配模式
|