删除" +"来自angularJS和Regex的电子邮件地址的标志

时间:2014-05-04 14:46:23

标签: javascript regex angularjs web

我的任务是使用“+”符号的电子邮件地址对注册表无效。我是正则表达式的新手,我对它的研究使我相信最好在有效的输入中陈述你想要的东西而不是你不想要的东西。我使用了RegexBuddy的简化RFC 2822并从中删除了加号,以获得该表达式:

       [a-z0-9!#$%&'*/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

在通过RB的测试功能(即使“aaa+aa@gmail.com”无效)时,当我使用与 ng-pattern

2 个答案:

答案 0 :(得分:0)

快速解决方案

删除+符号

"aaa+aa@gmail.com".replace(/\+/g,''); // -> aaaaa@gmail.com

验证

var email = "aaa+aa@gmail.com";
var valid = email.match(/\+/g) ? false : true;
if(valid) {
  console.log("Email Id doesn't contain +");
} else {
  console.log("Email Id contains + Invalid");
}

答案 1 :(得分:0)

如果电子邮件包含+,则匹配正则表达式:

if (/\+/im.test(email)) {
    alert("INVALID " + email );
} else {
    alert("VALID " + email);
}

http://jsfiddle.net/tuga/6gWvJ/3/

正则表达式从电子邮件地址替换+

email = email.replace(/\+/, "");

http://jsfiddle.net/tuga/7VFNA/2/