电子邮件验证表达式/^(?!_)\w+([\.-]?\w+)*@(?!_)\w+([\.-]?\w+)*(\.\w{2,3})+$/
在某些情况下可以使用下划线,但在其他情况下则可以正常使用。
它不会失败以下电子邮件地址:
tets_name@gmail.com
test____name@gmail.com
以下是模式:
var pattern =/^(?!_)\w+([\.-]?\w+)*@(?!_)\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if (pattern.test(Email)) {
return false;
}
我该如何限制不允许下划线?
答案 0 :(得分:1)
请注意,\w
匹配ASCII字母([A-Za-z]
),数字([0-9]
)和下划线。
为确保您的正则表达式与下划线不匹配,请将所有\w
替换为[a-zA-Z0-9]
,最后一个\w{2,3}
替换为[a-zA-Z]{2,3}
:
/^[a-zA-Z0-9]+(?:[.-][a-zA-Z0-9]+)*@[a-zA-Z0-9]+(?:[.-][a-zA-Z0-9]+)*\.[a-zA-Z]{2,3}$/
如果您打算匹配仅在字母/数字之间包含单个下划线而不在开始/结束使用时包含下划线的电子邮件
/^[a-zA-Z0-9]+(?:[_.-][a-zA-Z0-9]+)*@[a-zA-Z0-9]+(?:[_.-][a-zA-Z0-9]+)*\.[a-zA-Z]{2,3}$/
请参见this regex和another regex here。
详细信息
^
-字符串的开头[a-zA-Z0-9]+
-1个或多个ASCII字母/数字(?:[.-][a-zA-Z0-9]+)*
-零个或多个序列
[.-]
-点或-
(无需在字符类中转义点)[a-zA-Z0-9]+
-1个或多个ASCII字母/数字@
-一个@
字符[a-zA-Z0-9]+
-1个或多个ASCII字母/数字(?:[.-][a-zA-Z0-9]+)*
-零个或多个序列
[.-]
-点或-
(无需在字符类中转义点)[a-zA-Z0-9]+
-1个或多个ASCII字母/数字\.
-一个点[a-zA-Z]{2,3}
-2或3个ASCII字母$
-字符串的结尾。答案 1 :(得分:1)
您可以尝试一下,我只是在负面的展望中添加了.*
,您只是在字符串的开头寻找单个_
,但是-
可以位于其他位置
^(?!.*_)\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$
查看链接上的说明