1. 程式人生 > >js正則表示式中的零寬斷言

js正則表示式中的零寬斷言

首先要說的是js正則表示式只支援零寬先行斷言,而零寬先行斷言又可以分為正向零寬先行斷言(判斷字元後面必須匹配regexp)和負向零寬先行斷言(判斷字元後面不能匹配regexp)

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

得到的結果為:
在這裡插入圖片描述
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