Javascript ESLint和lookback断言

Javascript ESLint和lookback断言,javascript,regex,eslint,Javascript,Regex,Eslint,我有一个带有lookback断言的正则表达式,ESLint似乎不认为它是有效的。然而,前瞻性断言是好的 我可以用最新版本的ESLint(我已经使用了)和非常简单和人为的例子重现这个问题 前瞻断言:如果后跟d,则匹配b(并且仅匹配b): 'bd'.match(/b(?=d)/) //=> ['b'] 'be'.match(/b(?=d)/) //=> null ESLint将/b(?=d)/识别为有效的正则表达式: 查找断言:如果前面有a,则匹配b(并且仅匹配b): 'ab'.ma

我有一个带有lookback断言的正则表达式,ESLint似乎不认为它是有效的。然而,前瞻性断言是好的

我可以用最新版本的ESLint(我已经使用了)和非常简单和人为的例子重现这个问题

前瞻断言:如果后跟
d
,则匹配
b
(并且仅匹配
b
):

'bd'.match(/b(?=d)/) //=> ['b']
'be'.match(/b(?=d)/) //=> null
ESLint将
/b(?=d)/
识别为有效的正则表达式:

查找断言:如果前面有
a
,则匹配
b
(并且仅匹配
b
):

'ab'.match(/(?<=a)b/) //=> ['b']
'eb'.match(/(?<=a)b/) //=> null
您可以参考以下参考资料:

ecmaVersion
-设置为3、5(默认)、6、7、8、9、10、11或12以指定要使用的ECMAScript语法版本。您还可以设置为2015(与6相同)、2016(与7相同)、2017(与8相同)、2018(与9相同)、2019(与10相同)、2020(与11相同)或2021(与12相同)以使用基于年份的命名

如您所见,默认值为
5
,这意味着它只支持ES5。lookbehind是,因此您需要确保将
ecmaVersion
设置为至少
9

“解析选项”:{
“ecmaVersion”:9,
“源类型”:“脚本”,
“ecmaFeatures”:{}
},

它至少应该是
“ecmaVersion”:9
,应该是
5
,这是相当旧的版本。是否有此版本的逐文件注释版本?只是为了好玩,我尝试了
/*eslint env es9*/
来镜像
/*eslint env es6*/
es9
快捷方式似乎不存在)和
/*eslint env ecmaVersion:9*/
,只是想看看我是否幸运(我没有)。似乎是,但我仍然报告lookbehind正则表达式无效。