【问题标题】:Jquery Email regex validationJquery 电子邮件正则表达式验证
【发布时间】:2012-09-25 09:01:23
【问题描述】:

我正在使用 Jquery 电子邮件正则表达式进行验证,如下所示:

@"^((([az]|\d|[!#\$%&'*+-/=\?\^_{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_{\|}~]|[\u00A0-\uD7FF \uF900-\uFDCF\uFDF0-\uFFEF])+))|((\x22)((((\x20|\x09)(\x0d\x0a))?(\x20| \x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0- \uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\ uFFEF]))))(((\x20|\x09)(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((( [az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\ uFFEF])([az]|\d|-|.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|\d|[\u00A0- \uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))).)+(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]| [\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF ])*([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$"

不知道为什么它不允许大写?!如果电子邮件地址不应包含任何大写字母或此处有任何错误。

【问题讨论】:

  • 这是一个丑陋的正则表达式,如果你想要更好的语法,你应该看看 html5 和 jquery 表单验证插件。

标签: javascript jquery regex validation


【解决方案1】:

凡是出现[a-z] 字符类的地方,只需将其更改为[a-zA-Z]

(或在您的正则表达式中指定不区分大小写标志/修饰符i

【讨论】:

  • 在这种情况下,使用i 标志可能是最不痛苦的方法。
  • 是的,确实标志是更简单的解决方案
  • 谢谢,但想知道为什么 Jquery 只验证 eamil 地址的小写字母?
  • 您发布的内容中没有 Jquery。这只是一个 PCRE 模式,仅此而已:)
  • @patricgh:您发布的也是一个字符串,而不是 RegExp 对象(还),也许当调用构造函数时 i 作为第二个参数传递,以使表达式大小写-不敏感
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
  • 2011-10-27
相关资源
最近更新 更多