在Javascript中使用正则表达式验证包含文件夹的电子邮件地址

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

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

这工作正常。 但是还有一个额外的要求,例如“在GMAIL地址中,我们可以指定文件夹名称以及邮件将被发送到的电子邮件ID。例如,james+office@gmail.com邮件将被发送到文件夹james@gmail.com收件箱中的“办公室”。

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


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

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

现场演示


改用这个:

/^((([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+(.([a-z]|d|[!#$%&'*+-/=?^_`{|}~]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])+)*)|((x22)((((x20|x09)*(x0dx0a))?(x20|x09)+)?(([x01-x08x0bx0cx0e-x1fx7f]|x21|[x23-x5b]|[x5d-x7e]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([x01-x09x0bx0cx0d-x7f]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))))*(((x20|x09)*(x0dx0a))?(x20|x09)+)?(x22)))@((([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])([a-z]|d|-|.|_|~|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])*([a-z]|d|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))).)+(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])|(([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])([a-z]|d|-|.|_|~|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF])*([a-z]|[u00A0-uD7FFuF900-uFDCFuFDF0-uFFEF]))).?$/i

我在所需的场景中尝试了此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验证器中试用

谢谢,希望它有帮助

链接地址: http://www.djcxy.com/p/16523.html

上一篇: Validate email address with folder using regex in Javascript

下一篇: Regex validation of email addresses according to RFC5321/RFC5322