正则?=,?:,?!

'adsaaa'.replace(/a(?=d)/g,'c')   // "cdsaaa"  非获取性匹配,只将后面有d的a替换成c
'adsaaa'.replace(/a(?:d)/g,'c')   // "csaaa"  此时等同于/ad/,将ad替换成c
'adsaaa'.replace(/a(?!d)/g,'c')   // "adsccc" 将后面不是d的a替换成c
'adsaaa'.match(/a(?=d)/g)   // ["a"]
'adsaaa'.match(/a(?:d)/g)   // ["ad"]
'adsaaa'.match(/a(?!d)/g)   // ["a", "a", "a"]

  其中?:的用处主要是在有|的时候,很好用,例如a(?:d|r)匹配的就是ad或者ar

(?<=pattern),?<!pattern)这两个js里现在都用不了

posted @ 2018-04-08 18:02  胖了个胖胖  阅读(2889)  评论(0编辑  收藏  举报