我正在尝试验证文本字段,但是下面的正则表达式表达式出现错误。
if (!/^[a-zA-Z0-9\\\/\*+;&%?#@!^()_="\-:~`|[\]\{\}\s]*$/i.test(e.target.value)) {
this.setState({
newFamilyName: e.target.value,});
}
我是否需要在正则表达式中添加更多字符,以便完成它。
我正在尝试验证文本字段,但是下面的正则表达式表达式出现错误。
if (!/^[a-zA-Z0-9\\\/\*+;&%?#@!^()_="\-:~`|[\]\{\}\s]*$/i.test(e.target.value)) {
this.setState({
newFamilyName: e.target.value,});
}
我是否需要在正则表达式中添加更多字符,以便完成它。
您有一些不必要的转义符:
\/
\*
\{
\}
您可以修复它:
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-不必要的转义字符:\ {。 (无用转义)
1:49-不必要的转义字符:\}。 (无用转义)
这意味着您不需要在正则表达式中的\
,/
,*
或{
前面的}
。这些字符无需出现,因为它们出现在[]
组中。
不幸的是,eslint演示站点上的“固定代码”问题不起作用,但是以下代码是您如何解决它的方法
if (!/^[a-zA-Z0-9\\/*+;&%?#@!^()_="\-:~`|[\]{}\s]*$/i.test(e.target.value)) {
this.setState({
newFamilyName: e.target.value,});
}