电子邮件地址验证正则表达式

时间:2020-06-18 08:36:14

标签: javascript regex

所以我要设置一个具有以下约束的电子邮件地址验证正则表达式...
参考:α @ βγ

α
1)仅包含a-z 0-9 . - _
2)包含1到30个字符(包括1个字符)
3)不能以. - _
开头或结尾 4)不能有2个连续的符号(. - _中)

β
1)仅包含a-z 0-9 -
2)包含2到14个字符(包括2个字符)
3)不能以-开头或结尾
4)不能有两个连续的-

γ
1)仅包含a-z
2)包含2到4个字符(包括2个字符)

================================================ ==========================

每个约束的前两个约束都很容易实现,所以我做到了,如下所示
([a-z0-9.\-_]{1,30})@([a-z0-9\-]{2,14}).([a-z]{2,4})

有人可以帮我解决αβ的(2)和(3)

1 个答案:

答案 0 :(得分:0)

您可以使用

/^(?=[^@]{1,30}@)[a-z0-9]+(?:[._-][a-z0-9]+)*@(?=.{2,14}\.[a-z]+$)[a-z0-9]+(?:-[a-z0-9]+)*\.[a-z]{2,4}$/

请参见regex demo

详细信息

  • ^-字符串的开头
  • (?=[^@]{1,30}@)-在@之前允许1到30个字符
  • [a-z0-9]+-1个以上的小写字母和数字
  • (?:[._-][a-z0-9]+)*-出现._-或0次以上,后跟1+个小写字母或数字
  • @-一个@字符
  • (?=.{2,14}\.[a-z]+$)-在右边,必须有2到14个字符,然后是.和1个小写字母,直到字符串结尾
  • [a-z0-9]+(?:-[a-z0-9]+)*-1个以上的小写字母和数字,然后出现0个或多个连字符,再加上1个以上的小写字母或数字
  • \.-一个点
  • [a-z]{2,4}-两到四个小写字母
  • $-字符串的结尾。