关于邮箱地址正则的问题

Chobohoo 2012-09-11 03:08:04

现有邮箱正则表达式如下:
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!
...全文
297 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chobohoo 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 5 楼 的回复:
引用 4 楼 的回复:

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))+/;



这位兄弟……
[/Quote]


这次可以了..非常感谢.

另外,你的正则我有个地方不是很明白.

为什么netcn这里不需要跟gov\.cn一样写呢?
q107770540 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:

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))+/;



这位兄弟,你这正则有些问题.

例……
[/Quote]
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))+$/;
张运领 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:

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))+/;



这位兄弟,你这正则有些问题.

……
[/Quote]

那就在最后那个+号后面加上$,表示匹配结尾,试试看~~
Chobohoo 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

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))+/;
[/Quote]


这位兄弟,你这正则有些问题.

例如:test@163.com.cnn 这样的地址,也能过.
q107770540 2012-09-11
  • 打赏
  • 举报
回复
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))+/;
Chobohoo 2012-09-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

你先安正常的验证一下,符合后 再把后缀截取下来 看是否在.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
这个字符串中。


这样可以不
[/Quote]


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,就是你了!");
}

}

}



我是这么判断的.但感觉太繁琐了..不是我想要的.正则不知道怎么搞.太蛋疼了..
kuge6688 2012-09-11
  • 打赏
  • 举报
回复
你先安正常的验证一下,符合后 再把后缀截取下来 看是否在.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
这个字符串中。


这样可以不
Chobohoo 2012-09-11
  • 打赏
  • 举报
回复
有人吗?

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧