在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