我正在使用下面的正则表达式来验证电子邮件是否接受字母数字字符。它适用于以下情况
1) 必须包含至少一个字母
2) 允许字母数字
3) 允许特殊字符 .-and _
正则表达式:
/^([a-zA-Z0-9])(([a-zA-Z0-9])*([\._-])?([a-zA-Z0-9 ]))*@(([a-zA-Z0-9\-])+(\.))+([a-zA-Z]{2,4})+$/i
案例:
1111@gmail.com - 允许
aaaa@gmail.com - 允许
aa1_aa@gmail.com - 允许
预期输出:
1111@gmail.com - 不允许,因为它在 @ 之前不包含字母
aaaa@gmail.com - 允许
a1@gmail.com - 允许
1a@gmail.com - 允许
aa1_aa@gmail.com - 允许
她的是 jsfiddle Demo
最佳答案
你的正则表达式将完成这项工作,只需在开头添加它
(?=[^@]*[A-Za-z])
像这样制作你的最终正则表达式:
/^(?=[^@]*[A-Za-z])([a-zA-Z0-9])(([a-zA-Z0-9])*([\._-])?([a-zA-Z0-9]))*@(([a-zA-Z0-9\-])+(\.))+([a-zA-Z] {2,4})+$/i
(?=exp)
是正向预测。它会尝试在不匹配的情况下找到表达式。前瞻实际上匹配字符,但随后放弃匹配。
(?=[^@]*[A-Za-z])
:会匹配[^@]*[A-Za-z]
,意思是@
后跟字母以外的任何内容。所以实际上,如果 @
关于javascript - javascript中的字母数字电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20673980/