免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2127 | 回复: 4

请问如何使用正则表达式来检验邮件地址的完整性 [复制链接]

论坛徽章:
0
发表于 2006-07-03 18:00 |显示全部楼层
知道邮件地址是local-part@domain组成,请问如何精确的检验邮件地址的完整性呢?
/[A-Za-z0-9\.\-\_\~]+\@[A-Za-z0-9\.\-]+\.[A-Za-z0-9\.\-]+/ 这个很粗糙

另外不知道邮件地址是由哪个RFC标准定义。

论坛徽章:
0
发表于 2006-07-03 18:22 |显示全部楼层
自己试了一下,用下面这个:
^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$

可以做一些,不过xxx@xxx.htm就检查不出来了。

[ 本帖最后由 飘散在风里 于 2006-7-3 18:26 编辑 ]

论坛徽章:
0
发表于 2006-07-03 22:23 |显示全部楼层
正则表达式也只能是这样了,比较根本的还是从dns上来解决
  1.   use Net::DNS;
  2.   my $name = "qbq.cn";
  3.   my $res  = Net::DNS::Resolver->new;
  4.   my @mx   = mx($res, $name);
  5.   
  6.   if (@mx) {
  7.       foreach $rr (@mx) {
  8.           print $rr->preference, " ", $rr->exchange, "\n";
  9.       }
  10.   } else {
  11.       warn "Can't find MX records for $name: ", $res->errorstring, "\n";
  12.   }
复制代码

论坛徽章:
0
发表于 2006-07-04 09:25 |显示全部楼层
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

论坛徽章:
0
发表于 2006-07-04 09:53 |显示全部楼层
看到一个这样的网页,那里面的正则表达式好长好长
http://www.regular-expressions.info/email.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP