所以我要设置一个具有以下约束的电子邮件地址验证正则表达式...
参考:α
@ β
。 γ
α
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)
答案 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}
-两到四个小写字母$
-字符串的结尾。