【发布时间】:2015-12-26 21:34:31
【问题描述】:
。我需要 regExp 帮助以进行电子邮件验证。我一直被这个问题困扰。
要求是: "电子邮件地址的本地部分和域部分应接受以下内容:
大写和小写拉丁字母(a-z、A-Z)
数字 0 到 9
这些特殊字符:# - _ ~ ! $ & ' * + = 和百分位数编码,即 %20
-
字符。 (点、句号、句号)前提是它不是第一个或最后一个字符,并且它不连续出现(例如,不允许 John..Doe@example.com)。”
李>
我正在使用 jquery 验证器进行验证 我得到了正则表达式
/^[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*\.([a-z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]{2,})$/
有人可以缩小这个正则表达式吗
验证
应该可以: him@g#mail.com
不应该工作: him@g..mail.com
【问题讨论】:
-
您可以从字符类中删除过多的转义,它会大大减少:) 也请记住
\w = [a-zA-Z0-9_]。 -
在更一般的一点上 - 谁确定了这些要求?它们是绝对固定的吗? This is worth a read.
-
我提供小提琴,你可以检查一下吗?
-
或this?您可以将重复部分声明为构建块并在构建整个 RegExp 时重用。