跳至主要内容

prefer-regexp-exec

如果未提供全局标志,则强制使用RegExp#exec而不是String#match

🔧

此规则报告的一些问题可以通过--fix ESLint 命令行选项自动修复。

💭

此规则需要类型信息才能运行。

当正则表达式不包含g标志时,String#match被定义为与RegExp#exec的工作方式相同。始终使用两者之一可以帮助提高代码可读性。

String#match调用可以替换为等效的RegExp#exec时,此规则会报告。

RegExp#exec也可能比String#match稍快;这是选择它作为首选用法的理由。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/prefer-regexp-exec": "error"
}
};

在游乐场中尝试此规则 ↗

示例

'something'.match(/thing/);

'some things are just things'.match(/thing/);

const text = 'something';
const search = /thing/;
text.match(search);
在游乐场中打开

选项

此规则不可配置。

何时不使用它

如果您更喜欢对String#match的一致使用,无论是否带有g标志,您都可以关闭此规则。


类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置类型检查的 lint。如果您在启用类型检查的规则后遇到性能下降,请参阅性能故障排除

资源