用于检测“.com.com”的电子邮件验证的正则表达式

时间:2013-01-20 17:10:47

标签: javascript regex

  

可能重复:
  Validate email address in Javascript?

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

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

我测试过的大多数电子邮件ID工作正常。但突然间我发现它也在说电子邮件的.com.com类扩展,这对我来说是一个严重的错误。

我的问题是如何修改所提到的正则表达式,这也会使.com.com无效。

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

谢谢...

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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})$

答案 2 :(得分: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网站的官方电子邮件检查方法。 没有版权。所以你可以使用它。