首页 > Web开发 > 详细

js中的正则表达式

时间:2019-04-07 00:46:48      阅读:185      评论:0      收藏:0      [点我收藏+]

js中的正则表示式

String.prototype

tring.prototype 方法的正则有 match,search
match 返回匹配的项,search 返回匹配的第一个索引如下:

     var reg = /[a-z]\d/;
     var str = "q1d2";
     console.log(str.match(reg))// 结果是 [q1]   
     console.log(str.search(reg))// 结果是0 

如果是 /g

    var reg = /[a-z]\d/g;
     var str = "q1d2";
     console.log(str.match(reg))// 结果是 [q1,d2]   
     console.log(str.search(reg))// 结果是0

String 的方法不会返回子匹配的项,而RegExp的 exec 方法会返回子匹配项,如:

     var reg = /[a-z](\d)/g;
     var str = "q1d2";
     console.log(str.match(reg))// 结果是 仍然是[q1,d2]   
     console.log(str.search(reg))// 结果是0

RegExp.prototype

RegExp.prototype 有两个正则方法, test,和exec
test 表示是否匹配上了true|false
exec 返回匹配的项的数数组 result result[0]是匹配项,result[1]..依次是子匹配项

例子:

     var reg = /[a-z]\d/;
     var str = "q1d2";
     console.log(reg.exec(str)); //结果是 [q1,1]
     console.log(reg.test(str)); //true

 在全局匹配的时候exec连续执行得到全部的匹配项和子匹配项,例子:

     var reg = /[a-z]\d/g;
     var str = "q1d2";
     console.log(reg.exec(str)); //结果是 [q1,1]
     console.log(reg.exec(str)); //结果是 [d2,2]

RegExp.prototype.lastIndex 初始为0,只有当为全局匹配时才生效 ,被设置为紧随最近一次成功匹配的下一个位置,匹配为空后会重置为0

      var reg = /[a-z]\d/;
      reg.test("111d1")
       reg.lastIndex//0
    
       var reg = /[a-z]\d/g;
      reg.test("111d1")
       reg.lastIndex//5

es6新出的 y 标识 RegExp.prototype.sticky为true 和lastIndex 配合使用
表示一定要从 lastIndex开始匹配,

      var reg = /[a-z]\d/y;
       reg.lastIndex = 2;
       reg.test("sssss1") // false
       reg.test("sssss1")

String replace方法  

正则的情况
$1-9表示子匹配项的值
"ss1dd1".replace(/([a-z])(\d)/g,"$2"+"ff"+"$1");

repalce 传入function 参数分别为,匹配项,子匹配项,index,str
返回要替换的内容
"ss1dd1".replace(/([a-z])(\d)/g,function(matcher,$1,$2,index,str){

console.log(matcher,$1,$2,index,str)
return 22

})

  

  

  

  

  

 

js中的正则表达式

原文:https://www.cnblogs.com/chillaxyw/p/10663482.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!