> php教程 > php手册 > 用PHP校验EMAIL地址的正确方法(1)

用PHP校验EMAIL地址的正确方法(1)

WBOY
풀어 주다: 2016-06-13 11:01:41
원래의
1028명이 탐색했습니다.

由John Klensin编写的互联网任务工程组(IETF)文档RFC 3696 “应用程序技术检查和命名转换”给出了多个真实有效的EMAIL地址,但很不幸的是这些地址却被大多数PHP校验程序给拒绝了,地址Abc@def@example.com,customer/department=shipping@example.com 和!def!xyz%abc@example.com都是有效的,下面是在有关文献中给出的一个非常流行正则表达式,但它拒绝了前面给出的所有EMAIL地址:

^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$
로그인 후 복사

这个正则表达式只允许下划线(_)和连字符(-),数字和大小写字母。即使在此之前先对字母做了大小写转换,也会拒绝那些包含斜线(/),等号(=),惊叹号(!)和百分号(%)的地址。这个表达式也要求最高级的域组件至少要有2个或3个字符,因此也会拒绝有效的域,如.museum。

另一个受人喜欢的正则表达式是:

^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$
로그인 후 복사

这个正则表达式也会拒绝前面段落给出的有效示例地址,它优雅地解决了大写字母问题,并且当最高级域名只有2个或3个字符也不会报错了,但它又允许无效的域名,如example..com。

清单1显示了一个来自PHP Dev Shed(

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿