js使用正则,对前瞻断言和后瞻断言的理解(转发)

[https://blog.csdn.net/example440982/article/details/85177133
]

断言写法
前瞻断言

(?=exp) 顺序肯定环视,表示所在位置右侧能够匹配exp

(?!exp) 顺序否定环视,表示所在位置右侧不能匹配exp

后瞻断言

(?<=exp) 逆序肯定环视,表示所在位置左侧能够匹配exp

(?
  • 括号是必须的,写法: (?!=...)

  • 有些语言并不完全支持,比如:javascript的正则并不支持后瞻断言表达式,使用了会报错的。

  • 这里有坑,不要随便用后瞻断言,旧浏览器不支持
    其中exp是一个正则表达式可以是子模式,如:(?=((exp))。

*环视也称断言;断言是不占用字符串的((?=exp)所以不能引用,exp是占用字符串的)

** 例子 **

var s="img.jpg,abc.gif,123.jpeg";
s.match(/\w*(?=\.gif)/);
结果:["abc"]
var a = 'http://ydqwytest.suolwei.cn/index.php?s=/Wechat/Commerce/Commerce/id/23524'

a.match(/(?<=id)[\/|=|&](\d*)/i)[1]
"23524"

js使用 后瞻断言 有坑

你可能感兴趣的:(js使用正则,对前瞻断言和后瞻断言的理解(转发))