我已经有一个电子邮件地址正则表达式FROM RFC 2822 FORMAT
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
但想要修改它以包含以下一些新条件:
目前,上述内容允许电子邮件以特殊字符开头。它还允许连续两次完整停止(域名除外,这是正常的,因此test @ test..com失败并且正确)。
感谢。
答案 0 :(得分:1)
^[a-zA-Z0-9]+(?:\.?[\w!#$%&'*+/=?^`{|}~\-]+)*@[a-zA-Z0-9](?:\.?[\w\-]+)+\.[A-Za-z0-9]+$
否..
且至少1 .
和1 @
也以字母/数字开头/结尾。
添加^
(开始)和$
(结束)以匹配整个字符串,而不仅仅是子字符串。但是你可以用单词边界\b
替换它们。
特殊字符未被硬编码的替代方法:
^(?!.*[.]{2})[a-zA-Z0-9][^@\s]*?@[a-zA-Z0-9][^@\s]*?\.[A-Za-z0-9]+$