javascript - javascript中的字母数字电子邮件验证

标签 javascript regex

我正在使用下面的正则表达式来验证电子邮件是否接受字母数字字符。它适用于以下情况

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],意思是@ 后跟字母以外的任何内容。所以实际上,如果 @

之前的部分中至少存在一个字母表,它将匹配

您可以 refer this for look-ahead and look-behind

关于javascript - javascript中的字母数字电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20673980/

相关文章:

javascript - 苹果商店指南。混合移动应用程序中的外部 JavaScript 文件

javascript - 当内容脚本用 React 注入(inject)时告诉后台脚本?

javascript - JavaScript 中的嵌套函数和 "this"关键字

regex - Sed 仅删除第一次出现的字符串

javascript - 为什么我的验证电子邮件地址的正则表达式出现 "nothing to repeat"错误?

java - 在文件夹下的文件中搜索有效模式? (也许使用 Perl 或使用 Java 的一些 API 或其他任何东西)

javascript - 从数组元素中过滤

javascript - postman 发帖请求在发送时卡住

C# 正则表达式忽略转义字符

javascript - 字符串转正则表达式