js正则表达式中的零宽断言

首先要说的是js正则表达式只支持零宽先行断言,而零宽先行断言又可以分为正向零宽先行断言(判断字符后面必须匹配regexp)和负向零宽先行断言(判断字符后面不能匹配regexp)

  1. 正向零宽先行断言
    例:
var str = 'abABb'
var regexp = /ab(?=[A-Z])/
str.match(regexp) 

得到的结果为:
js正则表达式中的零宽断言_第1张图片
2. 负向零宽先行断言

var str = 'abABb'
var regexp = /ab(?![A-Z])/
str.match(regexp) 

返回的结果是null,这是match方法没有匹配到结果时的返回值。
由此可以看到,js中的零宽断言只能实现断言位置后面能不能匹配某个regexp,不能判断断言位置的前面能不能匹配某个regexp,即不支持零宽后发断言。

参考: https://www.cnblogs.com/onepixel/articles/7717789.html

你可能感兴趣的:(JavaScript)