JavaScript正则表达式中的意外控制字符

Nou*_*had 0 javascript regex

我的ESlint Unexpected control character(s) in regular expression: \x08 no-control-regex 为我的正则表达式 抛出错误 let regex = new RegExp("^[0-9a-zA-Z \b]+$");

如果我\b从regEx中删除,则不会抛出该错误。为什么会这样呢?如何清除错误?

Bru*_*oLM 6

规则no-control-regex已启用。

从中继承规则时,默认情况下启用此规则 eslint:recommended

"extends": "eslint:recommended"
Run Code Online (Sandbox Code Playgroud)

默认情况下启用它的原因:

控制字符是特殊的,不可见的字符,在ASCII范围0-31中。这些字符很少在JavaScript字符串中使用,因此包含这些字符的正则表达式很可能是错误的。

要禁用此规则,请在eslint配置上添加

"rules": {
  "no-control-regex": 0
}
Run Code Online (Sandbox Code Playgroud)

  • “很可能是一个错误”......噗......愚蠢。 (6认同)
  • 非常有趣,但是这是一个奇怪的规则!(特别是如果您考虑的是制表符,回车符,换行符以及最终的换行符等非常常见的字符)。 (3认同)
  • 我正在使用 Visual Studio Code 和 React。我尝试像这样编辑 package.json - "eslintConfig": { "extends": "react-app", "rules": { "no-control-regex": 0 } } - 但没有效果。 (2认同)
  • @DrorBar,您好,尝试在每个有问题的行上方添加: // eslint-disable-next-line (2认同)