JavaScript中的负向回溯等效项
本文介绍了JavaScript中的负向回溯等效项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有办法在JavaScript正则表达式中实现negative lookbehind的等价物?我需要匹配不以特定字符集开头的字符串。
如果在字符串的开头找到匹配的部分,我似乎找不到一个执行此操作而不失败的正则表达式。负面表情似乎是唯一的答案,但JavaScript没有答案。
这是我想要使用的正则表达式,但它不是:
(?<!([abcdefg]))m
因此它将匹配‘Jim’或‘m’中的‘m’,而不是‘jam’
推荐答案
Lookbehind Assertions在2018年进入ECMAScript specification。
正向回看用法:
console.log(
"$9.99 €8.47".match(/(?<=$)d+.d*/) // Matches "9.99"
);
负向回溯用法:
console.log(
"$9.99 €8.47".match(/(?<!$)d+.d*/) // Matches "8.47"
);
平台支持:
- ✔️V8
- ✔️Google Chrome 62.0
- ✔️Microsoft Edge79.0
- ✔️Node.js 6.0 behind a flag and 9.0 without a flag
- ✔️Deno(所有版本)
- ✔️SpiderMonkey
- ✔️Mozilla Firefox 78.0