如何在正则表达式中编写条件

时间:2015-09-24 00:30:10

标签: regex

我有以下正则表达式(javascript)

/^[a-z0-9_.\-]+@(yahoo|gmail|excite})\.com$/

但是,我不确定如何使这个包括子域(如果存在一个子域)。

所以这个表达式应该与uk.yahoo.com和yahoo.com电子邮件地址相匹配......如何做到这一点?

1 个答案:

答案 0 :(得分:1)

好吧,如果你想只是子域名uk.yahoo.com

/^[a-z0-9_.\-]+@((?:uk\.)?yahoo|gmail|excite)\.com$/

添加(?:uk\.)?指定一个可选的非捕获组,它匹配模式“uk.”的0或1次出现。

但是,使用正则表达式验证电子邮件地址是awful ideaRFC2822非常复杂的标准。盲目地向用户输入的最低限度验证的地址发送电子邮件,提前失败并让用户有机会纠正错误会更好。