【问题标题】:JSLint - Unexpected '\' before '.'JSLint - '。'之前的意外'\'
【发布时间】:2025-12-30 12:00:11
【问题描述】:

对于我的正则表达式,我在 JSLint 中收到以下警告。

Unexpected '\' before '.'.
var regexForEmail = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;

有人可以帮我解决它还是有其他方法可以抑制警告?

提前致谢

Dinesh。

【问题讨论】:

  • 您使用什么来生成该输出?
  • 我正在复制我的 javascript 并将其粘贴到提到的链接 jslint.com 中。这将在我的 js 文件中生成警告。

标签: javascript regex jslint


【解决方案1】:

. 在方括号内时没有特殊含义,因此无需在此处转义。 " 在正则表达式中完全没有特殊含义,所以你永远不需要转义它。

var regexForEmail = /^(([^<>()\[\].,;:\s@"]+(\.[^<>()\[\].,;:\s@"]+)*)|(".+"))@(([^<>()\[\].,;:\s@"]+\.)+[^<>()\[\].,;:\s@"]{2,})$/i;

方括号内唯一的特殊字符是反斜杠、连字符、右方括号和开头的插入符号。

What special characters must be escaped in regular expressions?

【讨论】:

  • 使用你的表情仍然向我显示警告Expected '\' before '['. var regexForEmail = /^(([^&lt;&gt;()[\].,;:\s@\"]+(\.[^&lt;&gt;()[\].,;:\s@"]+)*)|(".+"))@(([^&lt;&gt;()[\].,;:\s@"]+\.)+[^&lt;&gt;()[\].,;:\s@"]{2,})$/i;
  • 我不知道为什么 JSLint 认为 [ 需要在 [] 中转义,但我已经加回了那些反斜杠。我还错过了一些仍然被转义的双引号,我已经修复了它们。我刚刚在 jslint.com 中测试过,现在没有任何警告。