- 量词的使用
?...零次或一次
*...任意次
+...至少一次
{n}...出现 n 次
{n,m}...出现 n-m 次:后面加上“?”是非贪婪模式,匹配尽可能少的个数(n),不加是贪婪模式,会匹配尽可能多的个数(m)
{n,}...至少出现n次
- RegExp 的方法
- reg.test(str)...返回的是布尔值
- reg.exec(str)...返回的是只有一个成员的数组(字符串的一小段),并且匹配后,reg具有 lastIndex 属性,指向 str 中匹配出来的字符串的后一个位置,每调用一次 exec() 方法,匹配出一段字符串,直到最后reg.lastIndex===0为止
- 字符串与 RegExp 相关的方法
- str.match(reg)...返回的值是数组,匹配不上返回 null,全局调用时返回所有匹配上的值构成的数组,非全局调用时返回第一个匹配上的值构成的数组
- str.replace(reg,substr/fn)...当 replace 中的参数都是字符串时,只会替换一次,但是使用正则的全局调用可以将所有符合要求的字符都替换掉。另外,如果第二个参数是函数时功能更强大,可对匹配上的数据进行操作,这个function会在每次匹配替换的时候调用,该回调函数一共有四个参数:
第一个参数很简单,是匹配字符串
第二个参数是正则表达式分组内容,没有分组则没有该参数
第三个参数是匹配项在字符串中的index
第四个参数则是原字符串
'<%1%><%2%><%3%>'.replace(/<%([^%>]+)%>/g,function(a,b,c,d){
console.log(a+'\t'+b+'\t'+c+'\t'+d);
return b;
}) //123
打印结果:
<%1%> 1 0 <%1%><%2%><%3%>
<%2%> 2 5 <%1%><%2%><%3%>
<%3%> 3 10 <%1%><%2%><%3%>
- str.split(reg)...使用正则将字符串分割,返回数组
'a1b2c3d'.split(/\d/); //["a", "b", "c", "d"]
网友评论