我在.NET中使用此正则表达式来验证电子邮件地址:
([A-Za-z0-9]|[A-Za-z0-9](([\w,=\.!\-#|\$%\^&*\+/\?\{\}~]+)*)[\w,=!\-#|\$%\^&*\+/\?\{\}~])@(?:[A-Za-z0-9-]+\.)+[a-zA-Z]{2,9}$
它有一个问题:在@
符号之前的本地名称中,它按顺序接受多个句点。例如,ab...c@gmail.com
。
有谁知道我如何解决这个问题,并保持其余的逻辑不变?
由于
答案 0 :(得分:1)
while (email.contains(".."))
email = email.Replace("..",".");
答案 1 :(得分:1)
您可以在“@”之前阻止连续句点,就像 之后阻止它们一样
^ [A-Za-z0-9][\w,=!#|$%^&*+/?{}~-]+ (?:\.[A-Za-z0-9][\w,=!#|$%^&*+/?{}~-]+)* @ (?:[A-Za-z0-9-]+\.)+ [a-zA-Z]{2,9} $
你需要删除换行符;为了便于阅读,我将其分解,因为无论如何它都不适合一行。摆脱了许多没有减轻体重的东西。