获得ESLint:不必要的转义字符



我正在尝试验证一个文本字段,但下面的正则表达式出现错误。

if (!/^[a-zA-Z0-9\/*+;&%?#@!^()_="-:~`|[]{}s]*$/i.test(e.target.value)) {
this.setState({
newFamilyName: e.target.value,
});
}

我需要在Regex中添加更多字符吗?完成它。

您有一些不必要的转义字符:/*{}

您可以修复它:

if (!/^[a-zA-Z0-9\/*+;&%?#@!^()_="-:~`|[]{}s]*$/i.test(e.target.value)) {
this.setState({
newFamilyName: e.target.value,
});
}

或者禁用规则:

//eslint-disable-next-line
if (!/^[a-zA-Z0-9\/*+;&%?#@!^()_="-:~`|[]{}s]*$/i.test(e.target.value)) {
this.setState({
newFamilyName: e.target.value,
});
}

不必要的转义符意味着正则表达式中的一个字符前面有一个,而实际上并不需要。

我插入了你张贴的代码https://eslint.org/demo得到:

1:20-不必要的转义符:\/。(没有无用的转义符(
1:22-不必要的转义符:\*。(没有无用的转义(
1:47-不必要的转义字符:\{。(没有无用的逃生(

这意味着您在正则表达式中的/*{}前面不需要。这些字符不需要转义,因为它们出现在[]组中。

不幸的是,esint演示网站上的"修复代码"没有起作用,但以下代码是如何修复它的

if (!/^[a-zA-Z0-9\/*+;&%?#@!^()_="-:~`|[]{}s]*$/i.test(e.target.value)) {
this.setState({
newFamilyName: e.target.value,
});
}

最新更新