我有以下正则表达式(javascript)
/^[a-z0-9_.\-]+@(yahoo|gmail|excite})\.com$/
但是,我不确定如何使这个包括子域(如果存在一个子域)。
所以这个表达式应该与uk.yahoo.com和yahoo.com电子邮件地址相匹配......如何做到这一点?
答案 0 :(得分:1)
好吧,如果你想只是子域名uk.yahoo.com
:
/^[a-z0-9_.\-]+@((?:uk\.)?yahoo|gmail|excite)\.com$/
添加(?:uk\.)?
指定一个可选的非捕获组,它匹配模式“uk.
”的0或1次出现。
但是,使用正则表达式验证电子邮件地址是awful idea。 RFC2822是非常复杂的标准。盲目地向用户输入的最低限度验证的地址发送电子邮件,提前失败并让用户有机会纠正错误会更好。