使用正则表达式的电子邮件验证

Email Verifcation using Regex

提问人:Tom Kine 提问时间:10/10/2023 最后编辑:Tom Kine 更新时间:10/11/2023 访问量:61

问:

我的电子邮件正则表达式有问题 它不允许这种类型:a_a@domain.com 它不允许使用“_”符号(下划线)

我也希望能够验证这种格式的电子邮件 [email protected]

/^(?!.*_)\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})/
JavaScript HTML jQuery 正则表达式

评论

0赞 Tom Kine 10/10/2023
在哪里以及如何,有很多\w
0赞 freedomn-m 10/10/2023
nvm 我回顾了是什么意思:\w 匹配任何单词字符(相当于 [a-zA-Z0-9_]),所以应该已经包括了\w_
0赞 freedomn-m 10/10/2023
删除负面展望 - - 这表示:不要将任何内容与(?!.*_)_
0赞 Tom Kine 10/10/2023
对不起,它不起作用
0赞 The fourth bird 10/11/2023
要匹配该电子邮件地址,请参阅 regex101.com/r/BwC6x9/1 但是,为什么你的模式中有负面的展望呢?是否要排除电子邮件地址中的某个位置?^\w+(?:[.-]\w+)*@\w+(?:[.-]\w+)*\.\w{2,3}$(?!.*_)_

答:

1赞 mquantin 10/11/2023 #1

此处建议的正则表达式 (https://regex101.com/r/BwC6x9/1) 适用于您提出的问题。
如果要确保电子邮件地址不是以下划线开头,而只是以 [a-z] 中的字母开头,则:

  1. 你可以把这个要求写在你的问题中!
  2. 检查一下是个好主意!
  3. 这个正则表达式应该可以完成这项工作:请参阅 https://regex101.com/r/n8T7OY/1^[a-z]\w*(?:[.-]\w+)*@\w+(?:[.-]\w+)*\.\w{2,3}$
  4. 您可以对正则表达式的域部分执行相同的操作(域不应以下划线开头)

但是,如果您想匹配电子邮件地址并有一个良好而完整的解决方案,请查看以下问题和答案:如何使用正则表达式验证电子邮件地址?