当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JavaScript 语言后行断言解析

JavaScript 语言后行断言解析

2019年03月25日  | 移动技术网IT编程  | 我要评论

后行断言

javascript 语言的正则表达式,只支持先行断言(lookahead)和先行否定断言(negative lookahead),不支持后行断言(lookbehind)和后行否定断言(negative lookbehind)。目前,有一个提案,引入后行断言,v8 引擎 4.9 版已经支持。

”先行断言“指的是,x只有在y前面才匹配,必须写成/x(?=y)/。比如,只匹配百分号之前的数字,要写成/\d+(?=%)/。”先行否定断言“指的是,x只有不在y前面才匹配,必须写成/x(?!y)/。比如,只匹配不在百分号之前的数字,要写成/\d+(?!%)/。


  1. /\d+(?=%)/.exec('100% of us presidents have been male') // ["100"]
  2. /\d+(?!%)/.exec('that’s all 44 of them') // ["44"]

上面两个字符串,如果互换正则表达式,就不会得到相同结果。另外,还可以看到,”先行断言“括号之中的部分((?=%)),是不计入返回结果的。

“后行断言”正好与“先行断言”相反,x只有在y后面才匹配,必须写成/(?<=y)x/。比如,只匹配美元符号之后的数字,要写成/(?<=\$)\d+/。”后行否定断言“则与”先行否定断言“相反,x只有不在y后面才匹配,必须写成/(?


  1. /(?<=\$)\d+/.exec('benjamin franklin is on the $100 bill') // ["100"]
  2. /(?

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网