从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 。
该错误消息的措词显然相当困惑,但仍然正确。