一个PHP中常用email校验语句的解释

无聊的说love

无聊的说love

2016-01-29 13:42

一个PHP中常用email校验语句的解释,一个PHP中常用email校验语句的解释

相信好好学过PHP的人都应该知道下面这段用于eamil校验的语句,但是真正能看懂的就不多了:
<?php
if (eregi("^[_.0-9a-z-] @([0-9a-z][0-9a-z-] .) [a-z]{2,3}$",$email)) {
echo "您的 E-Mail 通过初步检查";
}
?
在这句话里,首先是应用了一个eregi函数,这个函数还算好理解。随便找本书,就能给你一段解释:
语法: int ereg(string pattern, string string, array [regs]);
返回值: 整数/数组
本函数以 pattern 的规则来解析比对字符串 string。
比对结果返回的值放在数组参数 regs 之中,regs[0] 内容就是原字符串 string、regs[1] 为第一个合乎规则的字符串、regs[2] 就是第二个合乎规则的字符串,余类推。若省略参数 regs,则只是单纯地比对,找到则返回值为 true。

而不太好理解的就是前面的这段正则表达式了:^[_.0-9a-z-] @([0-9a-z][0-9a-z-] .) [a-z]{2,3}$
在这段正则表达式中, 表示前面的字符串连续出现一个或多个;^表示下一个字符串必须出现在开头,$表示前一个字符串必须出现在结尾;
.也就是.,这里是转义符;{2,3}表示前面的字符串可以连续出现2-3次。()表示包含的内容必须同时出现在目标对象中。[_.0-9a-z-]表示包含在_、.、-、从a到z范围内的字母、从0到9范围内的数字中的任意字符;
这样一来,这个正则表达式可以这样翻译:
下面的字符必须在开头(^)、该字符必须包含在_、.、-、从a到z范围内的字母、从0到9范围内的数字中([_.0-9a-z-])、前面这个字符至少出现一次( )、@、该字符串由一个包含在从a到z范围内的一个字母、从0到9范围内的数字中的字符开头,后面跟至少一个包含在-、从a到z范围内任何一个字母、从0到9范围内任何一个数字中的字符,最后以.结束(([0-9a-z][0-9a-z-] .))、前面这个字符至少出现一次( )、从a到z范围内的字母出现2-3次,并以它结束([a-z]{2,3}$)
很繁杂是吧,对了,正因为这样,人们才使用正则表达式。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/php/)
展开更多 50%)
分享

猜你喜欢

一个PHP中常用email校验语句的解释

PHP
一个PHP中常用email校验语句的解释

PHP 正则 email语句详解

Web开发
PHP 正则 email语句详解

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

贴一个在Mozilla中常用的Javascript代码

Web开发
贴一个在Mozilla中常用的Javascript代码

很实用的一个完整email发送程序

PHP
很实用的一个完整email发送程序

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一个正则的写法 php

Web开发
一个正则的写法 php

ASP整合的一个SQL语句类

ASP
ASP整合的一个SQL语句类

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

FW MX和Flash MX的亲密合作(4)

FW MX和Flash MX的亲密合作(4)

Flash组件之旅(3):使用第三方组件(2)

Flash组件之旅(3):使用第三方组件(2)
下拉加载更多内容 ↓