正则的使用

2019-12-09  本文已影响0人  王瓷锤

?...零次或一次
*...任意次
+...至少一次
{n}...出现 n 次
{n,m}...出现 n-m 次:后面加上“?”是非贪婪模式,匹配尽可能少的个数(n),不加是贪婪模式,会匹配尽可能多的个数(m)
{n,}...至少出现n次

  1. reg.test(str)...返回的是布尔值
  2. reg.exec(str)...返回的是只有一个成员的数组(字符串的一小段),并且匹配后,reg具有 lastIndex 属性,指向 str 中匹配出来的字符串的后一个位置,每调用一次 exec() 方法,匹配出一段字符串,直到最后reg.lastIndex===0为止
  1. str.match(reg)...返回的值是数组,匹配不上返回 null,全局调用时返回所有匹配上的值构成的数组,非全局调用时返回第一个匹配上的值构成的数组
  2. 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%>

  1. str.split(reg)...使用正则将字符串分割,返回数组

'a1b2c3d'.split(/\d/); //["a", "b", "c", "d"]

参考文献
http://book.jirengu.com/fe/%E5%89%8D%E7%AB%AF%E5%9F%BA%E7%A1%80/Javascript/%E6%AD%A3%E5%88%99%E7%9B%B8%E5%85%B3%E6%96%B9%E6%B3%95.html

上一篇 下一篇

猜你喜欢

热点阅读