我正在使用以下正则表达式来验证电子邮件,只是发现了一些问题而且没有看到问题所在:
/^[a-z0-9_.-]+@[a-z0-9.-]+.[a-z]{2,6}$/i.test(value)
support@tes is invalid
support@test is valid
support@test.c is invalid
support@test.co is valid
2,6用于要求和结束tld在2或6之间,这似乎也不起作用。我确信之前我的工作正常。
答案 0 :(得分:3)
在正则表达式中,.
是一个通配符(表示任何字符)。你需要以\.
请记住,正则表达式限制性太强。您可以在地址中包含非字母数字字符,例如'
答案 1 :(得分:1)
我注意到你没有逃脱.
。可能还有更多的东西,但是我跳出来了。
答案 2 :(得分:0)
对于使用Regex的电子邮件,这是一个不错的检查
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
但是你可能想读这个。 Using a regular expression to validate an email address
答案 3 :(得分:0)
有很多方法可以正则表达电子邮件地址。取决于你想要它的精确程度和限制程度,但要重新编写一个与你问题最接近的工作正则表达式。这应该有效:
^[\w_.-]+@[\w]+\.[\w]{2,6}$
support@tes - Invalid
support@test - Invalid
support@test.c - Invalid
support@test.co - Valid
supp34o.rt@tes.com - Valid
但请注意有效电子邮件地址中允许的所有字符 - What characters are allowed in an email address?