从MDN文档中可以看到



但是,如果运行此代码:

const regexp = RegExp('[a-c]', '');
const str = 'abc';
console.log(Array.from(str.matchAll(regexp), m => m[0]));
// Array [ "a" ]


在最新版的chrome中,您会遇到以下错误:



我在Chrome版本80.0.3987.116

我不确定这是否是Chrome问题,还是需要更新MDN文档。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/matchAll

最佳答案

在这种情况下,有关MDN的信息是错误的。

截至2020年2月15日的ECMA官方规范ECMA-262(See here)声明,如果不存在g标志,则matchAll应该抛出 TypeError

具体参见下面的 2.b.iii

javascript - 当g标志现在丢失时,matchAll引发错误?-LMLPHP

该错误消息的措词显然相当困惑,但仍然正确。

07-26 03:45