我的 ESlint 抛出错误
Unexpected control character(s) in regular expression: \x08 no-control-regex
对于我的正则表达式
let regex = new RegExp("^[0-9a-zA-Z \b]+$");
如果我从正则表达式中删除
\b
,则不会引发错误。为什么会发生这种情况?我怎样才能消除错误?
规则 no-control-regex 已启用。
当您从
eslint:recommended
继承规则时,默认启用此规则
"extends": "eslint:recommended"
默认启用的原因:
控制字符是 ASCII 范围 0-31 中的特殊、不可见字符。这些字符很少在 JavaScript 字符串中使用,因此包含这些字符的正则表达式很可能是一个错误。
要禁用此规则,请添加您的 eslint 配置
"rules": {
"no-control-regex": 0
}
ESLint 抛出错误的原因:
// This prints: ^[0-9a-zA-Z]+$
// Notice that the space character and \b is missing
console.log("^[0-9a-zA-Z \b]+$")
修复错误的正确方法是正确转义字符串。
let regex = new RegExp("^[0-9a-zA-Z \\b]+$");
我遇到了同样的问题,使用
\\n
替换 \n
就这样了。