人们已经就Regex进行了很多电子邮件验证的讨论。 我发现许多理想的电子邮件ID正则表达式,但所有这些都验证了超过2个点的电子邮件ID 即。
sangram@ab.cd.ef.gh.ij.kl.mn.op
所有正则表达式都在验证此电子邮件ID,这是不正确的。
根据我的错误的电子邮件ID,我知道可以有sub -sub -sub域,但是不应该允许超过5个点。
我想要控制这个东西,在@符号后面只能输入1到5个点。
那么如何使用正则表达式来完成?
提前致谢。 我希望stackoverflow肯定会解决这个问题。
-Sangram
答案 0 :(得分:3)
我不确定为什么您认为电子邮件地址中可能存在子域数量的最大值。
无论如何,尝试将有效的电子邮件地址与正则表达式完美匹配是毫无意义的。无论您的正则表达式如何巴洛克式,它都会允许无数的无效电子邮件地址,因为您不知道语法正确的域是否是实际域,或者“正确”的用户名是否实际接受电子邮件。
使用此模式:
/^[^@ ]+@[^@ ]+\.[^@ ]+$/
并完成它。有关此问题的更多信息,请访问humane email validation。
答案 1 :(得分:2)
看看这是否有帮助。 (请注意,这是减少验证)
\A[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\.){1,5}[A-Za-z]{2,4}\Z
答案 2 :(得分:2)
简化版:
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?