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

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

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

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

阅读 6.6k
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...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏