这是我的正则表达式
((^[a-zA-Z0-9]?[^<>()\[\]\\,:\s@"]*(\.[^<>()\[\]\\.,;:\s@"]+)*[a-zA-Z0-9])|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))
例如,上述正则表达式接受电子邮件本地部分中的两个连续点[电子邮件受保护] /cdn-cgi/l/email-protection电子邮件是否有效,工作正常,但是[电子邮件受保护] /cdn-cgi/l/email-protection这里将其视为有效电子邮件,但不是有效电子邮件。请帮助提取上述正则表达式,提前致谢。
此正则表达式验证电子邮件地址,并确保不使用连续的点:
var email1 = '[email protected] /cdn-cgi/l/email-protection';
var email2 = '[email protected] /cdn-cgi/l/email-protection';
var re = /^[\w%\+\-]+(\.[\w%\+\-]+)*@[\w%\+\-]+(\.[\w%\+\-]+)+$/;
var val1 = re.test(email1);
var val2 = re.test(email2);
console.log(email1 + ' ==> ' + val1);
console.log(email2 + ' ==> ' + val2);
控制台输出:
[email protected] /cdn-cgi/l/email-protection ==> true
[email protected] /cdn-cgi/l/email-protection ==> false
正则表达式的解释:
-
^...$
-- 开头和结尾的锚点
-
[\w%\+\-]+
-- 一个或多个单词字符以及除点之外的其他有效字符
-
(...)*
-- 使里面的内容可选(零次或多次出现)
-
(\.[\w%\+\-]+)*
-- 出现零次或多次点,后跟有效字符
-
@
-- an @
sign
-
[\w%\+\-]+(\.[\w%\+\-]+)+
-- 后面是相同的序列,只不过需要至少出现一次
请注意,基于实际 RFC-822 的正确验证非常复杂。这是一个包含 6000 多个字符的正则表达式,可以执行此操作:http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html http://www.ex-parrot.com/%7Epdw/Mail-RFC822-Address.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)