javascript正则表达式不支持?<!和?!吗?

javascript正则表达式不支持?<!和?!吗?

/(?<!j)\d+/.test('j123')
报语法错误

/\d+(?!j)/.test('123j')
返回true

阅读 6.8k
2 个回答

参见:http://www.cnblogs.com/Austin...

Javascript不支持负向零宽断言,只支持正向零宽断言。
也就是说,Javascript不支持(?<...),支持(?!...)

/\d+(?!j)/.test('123j')返回true,是因为,d+可以匹配1,也可以匹配2,也可以匹配3,也可以匹配12、23或者123。

Lookbehind Assertions 在 ES2019 才受支持,现在(2018年9月)已经进入 Stage 4,明年就可以用了。

TC39 提案:https://github.com/tc39/propo...

推荐问题