【问题标题】:Can't figure out why jsLint throws unescaped '[' in regex无法弄清楚为什么 jsLint 在正则表达式中抛出未转义的 '['
【发布时间】:2014-05-26 09:39:30
【问题描述】:

这是我的功能,

function validateEmail(email) { 
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);

}

JsLint 在重新声明中抛出 未转义的 '[' !正则表达式的构造有什么问题吗?

【问题讨论】:

  • 我已经在 google chrome 控制台上为这些数据尝试了您的代码,但没有出现问题:re.test("name@domain.com");re.test("mas@domainfortest");re.test("mas@dom a.cs");

标签: javascript regex jslint


【解决方案1】:

在您的正则表达式 ([^&lt;&gt;()[\]\\.,;:\s@\"]+) 的第一部分,您可能需要转义内部的 [

[^<>()\[\]\\.,;:\s@\"]+
       ^

这也必须在您的正则表达式的下一部分中完成。

【讨论】:

  • 是的,很简单。谢谢。
猜你喜欢
  • 2013-02-14
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
  • 2015-10-09
  • 2016-10-28
  • 1970-01-01
相关资源
最近更新 更多