现有邮箱正则表达式如下:
var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;该正则是没什么问题,不过客户现在要求的是
邮箱的域名必需包含在如下:
.com|.net|.org|.mobi|.info|.biz|.cc|.tv|.asia|.me|.travel|.tel|.name|.co|.so|.cn|.com.cn|.net.cn|.org.cn|.gov.cn|.hk一时之间,不知该怎么匹配了.求解!Thanks!

解决方案 »

  1.   

    你先安正常的验证一下,符合后  再把后缀截取下来 看是否在.com|.net|.org|.mobi|.info|.biz|.cc|.tv|.asia|.me|.travel|.tel|.name|.co|.so|.cn|.com.cn|.net.cn|.org.cn|.gov.cn|.hk
     这个字符串中。
    这样可以不
      

  2.   

    var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;            if (pattern.test(obj)) {
                    var domainList = ".com|.net|.org|.mobi|.info|.biz|.cc|.tv|.asia|.me|.travel|.tel|.name|.co|.so|.cn|.com.cn|.net.cn|.org.cn|.gov.cn|.hk".split("").reverse().join("").split("|");                var objTemp = obj.split("").reverse().join("")//反转字符串                for (var i = 0; i < domainList.length; i++) {                    if (objTemp.indexOf(domainList[i]) == 0) {
                            alert("Yes,就是你了!");
                        }                }
                            
                }我是这么判断的.但感觉太繁琐了..不是我想要的.正则不知道怎么搞.太蛋疼了..
      

  3.   

    var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.(?:com|net|org|mobi|info|biz|cc|tv|asia|me|travel|tel|name|co|so|cn|com\.cn|netcn|org\.cn|gov\.cn|hk))+/;
      

  4.   

    这位兄弟,你这正则有些问题.例如:[email protected] 这样的地址,也能过.
      

  5.   

    sorry:var pattern = /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(\.(?:com|net|org|mobi|info|biz|cc|tv|asia|me|travel|tel|name|co|so|cn|com\.cn|netcn|org\.cn|gov\.cn|hk))+$/;
      

  6.   

    这次可以了..非常感谢.另外,你的正则我有个地方不是很明白.为什么netcn这里不需要跟gov\.cn一样写呢?