1

可能重复:
在 Javascript 中验证电子邮件地址?

我在使用 Javascript 验证电子邮件地址客户端时遇到了一些麻烦。经过大量搜索,我找到了一个正则表达式,如下所示:-

/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$ 

它适用于我测试过的大多数电子邮件 ID。但是突然间我发现它也说带有.com.com类似扩展名的电子邮件,这对我来说是一个严重的错误。

我的问题是如何修改上述也将无效的正则表达式.com.com

我还应该提到,我也尝试过许多其他正则表达式,但它们似乎都有同样提到的问题......

谢谢...

4

3 回答 3

1

试试这个正则表达式:

function verifyEmail(){
var status = false;     
var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
     if (document.myform.email1.value.search(emailRegEx) == -1) {
          alert("Please enter a valid email address.");
     }
     else{
         status = true;
     }
     return status;
}
于 2013-01-20T17:16:25.550 回答
1

这将使任何以 结尾的地址无效.com.com

/^([A-Za-z0-9_\-\.])+\@(?![A-Za-z0-9_\-\.]+\.com\.com)([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$

这也将使那些以 结尾的无效@com.com

/^([A-Za-z0-9_\-\.])+\@(?!(?:[A-Za-z0-9_\-\.]+\.)?com\.com)([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$

最后,这将使那些以任何重复结尾的文件无效,例如 .net.net、.au.au 等:

/^([A-Za-z0-9_\-\.])+\@(?!(?:[A-Za-z0-9_\-\.]+\.)?([A-Za-z]{2,4})\.\2)([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$

于 2013-01-20T17:56:25.127 回答
0
function emailCheck (emailStr) {
 var checkTLD=1;
   var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
  var emailPat=/^(.+)@(.+)$/;
  var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
  var validChars="\[^\\s" + specialChars + "\]";
  var quotedUser="(\"[^\"]*\")";
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
  var atom=validChars + '+';

  var word="(" + atom + "|" + quotedUser + ")";
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
 var matchArray=emailStr.match(emailPat);
  if (matchArray==null) {
  alert("Email address seems incorrect (check @ and .'s)");
return false;
}

我的ISP网站的官方邮箱查收方法。这没有版权。所以你可以使用它。

于 2013-01-20T17:21:27.330 回答