电子邮件验证,允许"&"标志

时间:2014-03-12 20:43:39

标签: jquery regex email-validation

这是我目前的职能:

function isEmail(str){
 var emailReg = '^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$';
 var regex = new RegExp(emailReg);
 return regex.test(str);
} 

if(ecEmail != '' && ecEmail != null){
 if(isEmail(ecEmail) == false){
  alert('Please provide a valid email address.');
  return false;
 }
}

我的验证不允许包含"&"像hunter& staff@gmail.com这样的标志。我需要有关新电子邮件验证的帮助,以便允许发送包含"&"标志。

2 个答案:

答案 0 :(得分:1)

你应该可以使用:

'^[\\w\-&_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$'

'^[\\w\-\&_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$'

'^[\\w\-&_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$'

答案 1 :(得分:0)

试试这个正则表达式:

var patt=/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|<94>(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*<94>)@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;

我发现很久以前在w3.org上发现,目前无法找到直接链接。

编辑:

带有正确的var名称:

var emailReg =/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|<94>(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*<94>)@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;