一个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}$)”
很繁杂是吧,对了,正因为这样,人们才使用正则表达式。

时间: 2024-10-02 19:27:22

一个PHP中常用email校验语句的解释的相关文章

mssql sql中常用的sql语句总结

select col1=left(列名,patindex('%[^吖-??%',列名)-1) FROM 表名 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mssql 分页sql语句.mssql sql语句.sql常用语句.常用的sql语句.oracle常用sql语句,以便于您获取更多的相关知识.

c#中常用的js语句_基础应用

1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID號").name(或value) 6.一个小写转大

工作中常用的mysql语句分享 不用php也可以实现的效果_Mysql

1. 计算年数 你想通过生日来计算这个人有几岁了. 复制代码 代码如下: SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0; 2. 两个时间的差 取得两个 datetime 值的差.假设 dt1 和 dt2 是 datetime 类型,其格式为 'yyyy-mm-dd hh:mm:ss',那么它们之间所差的秒数为: UNIX_TIMESTAMP( dt2 ) - UNIX_TIMESTA

代码-使用C语言1. 读取一个.C文件,删除该文件中所有的注释语句

问题描述 使用C语言1. 读取一个.C文件,删除该文件中所有的注释语句 读取一个.C文件,删除该文件中所有的注释语句.然后写入到新的.C文件里. 要求: 删除注释语句功能采用动态链接库形式 在功能实现的基础上: --单元测试要足够充分 --要通过所有的MISRA C的检查 --代码要符合代码规范. 解决方案 #include int main() { FILE *fp,*fp1; char str[99]=""; int i=0; fp=fopen("test.c"

JavaScript中常用的正则表达式日常整理(全)_正则表达式

//校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true } 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注

PHP中filter函数校验数据的方法详解_php技巧

介绍PHP中filter函数校验数据的方法详解,PHP过滤器包含两种类型:Validation用来验证验证项是否合法.Sanitization用来格式化被验证的项目,因此它可能会修改验证项的值,将不合法的字符删除. input_filters_list() 用来列出当前系统所支持的所有过滤器. 复制代码 代码如下: <?php foreach(filter_list() as $id => $filter) {     echo $filter.' '.filter_id($filter).&

ASP.NET中常用的文件上传下载方法

asp.net|上传|下载     文件的上传下载是我们在实际项目开发过程中经常需要用到的技术,这里给出几种常见的方法,本文主要内容包括:1.如何解决文件上传大小的限制2.以文件形式保存到服务器3.转换成二进制字节流保存到数据库以及下载方法4.上传Internet上的资源 第一部分:    首先我们来说一下如何解决ASP.NET中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采用更改WEB.Config文件来自定义最大文件大小,如下:<

ASP.NET中发送Email完整实例(转)

asp.net ASP.NET中发送Email完整实例 本文举例说明在ASP.NET中发送Email的众多可能性,内容覆盖了诸如Email格式.优先权.附件及Email编码等方面. ASP.NET被赋予了一个发送Email的新对象,名为SmtpMail.使用SmtpMail对象从ASP.NET页面中发送Email时,可以遵循以下简单步骤: ▲包含与邮件有关类所需要的名称空间:▲例示一个信息对象,设置属性:▲使用SmtpMail对象实例的send方法发送邮件. 现在我们就来一步一步地研究从一个AS

ASP.NET中发送Email完整实例

本文举例说明在ASP.NET中发送Email的众多可能性,内容覆盖了诸如Email格式.优先权.附件及Email编码等方面. ASP.NET被赋予了一个发送Email的新对象,名为SmtpMail.使用SmtpMail对象从ASP.NET页面中发送Email时,可以遵循以下简单步骤: ▲包含与邮件有关类所需要的名称空间: ▲例示一个信息对象,设置属性: ▲使用SmtpMail对象实例的send方法发送邮件. 现在我们就来一步一步地研究从一个ASP.NET页面发送Email的过程.我们使用了VB来