使用Javascript中的regex验证带有文件夹的电子邮件地址

时间:2014-06-06 05:11:42

标签: javascript regex validation

我正在编写一个正则表达式来验证JavaScript中的电子邮件地址。

/^[a-zA-Z]([\w-\.]{4,29})+@([\w-]+\.)+[a-zA-Z]{2,3}$/

这很好用。但还有一个额外的要求,如"在GMAIL地址中,我们可以指定文件夹名称以及邮件将被传递到的电子邮件ID。对于前者james+office@gmail.com,邮件将被发送到文件夹" office"在james@gmail.com' s收件箱下。

那么我怎样才能在上面的正则表达式中验证它。 Plus符号不是强制性的,但如果添加+,则@ strong 之前的其他字符之间应为

3 个答案:

答案 0 :(得分:3)

您可以在角色类中添加+字符,并在@之前使用否定匹配。 注意我从点中移除了转义序列并将连字符移动为最后一个字符,否则您需要转义它并且还实现了i修饰符用于不区分大小写的用法匹配。

/^[a-z]([\w.+-]{4,29})[^+]@([\w-]+\.)+[a-z]{2,3}$/i

Live Demo

答案 1 :(得分:0)

改为使用这个:

/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i

答案 2 :(得分:0)

我在您需要的所需方案中尝试了此RegEx,并且工作正常

^([a-zA-Z0-9_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

RegEx Validator

中试用

谢谢, 希望它有所帮助