
PHP正则验证Email的方法

本文实例讲述了PHP正则验证Email的方法。分享给大家供大家参考。具体如下:
<?php function validateEmail($email) { $isValid = true; $atIndex = strrpos($email, "@"); if (is_bool($atIndex) && !$atIndex) { $isValid = false; } else { $domain = substr($email, $atIndex+1); $local = substr($email, 0, $atIndex); $localLen = strlen($local); $domainLen = strlen($domain); if ($localLen < 1 || $localLen > 64) { // local part length exceeded $isValid = false; } else if ($domainLen < 1 || $domainLen > 255) { // domain part length exceeded $isValid = false; } else if ($local[0] == '.' || $local[$localLen-1] == '.') { // local part starts or ends with '.' $isValid = false; } else if (preg_match('/\\.\\./', $local)) { // local part has two consecutive dots $isValid = false; } else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) { // character not valid in domain part $isValid = false; } else if (preg_match('/\\.\\./', $domain)) { // domain part has two consecutive dots $isValid = false; } else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local))) { // character not valid in local part unless // local part is quoted if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$local))) { $isValid = false; } } if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))) { // domain not found in DNS $isValid = false; } } return $isValid; } ?>
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript
正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg
希望本文所述对大家的php程序设计有所帮助。
相关推荐
-
PHP IPV6正则表达式验证代码
复制代码 代码如下: <?php // literally from the ABNF in rfc3986 (thanks to 'WCP') function validateIPv6($IP) { return preg_match('/\A (?: (?: (?:[a-f0-9]{1,4}:){6} ::(?:[a-f0-9]{1,4}:){5} (?:[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){4} (?:(?:[a-f0-9]{1,4}:){0,1}[a-
-
php邮箱地址正则表达式验证
我们最经常遇到的验证,就是电子邮件地址验证.网站上常见.各种网页脚本也都常用"正则表达式"(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法.有的还能分解出用户名和域名.现在用PHP语言实现一下电子邮件地址验证程序,用的是PHP正则表达式库. 源代码如下: <?php header ( "Content-Type: text/html; charset=UTF-8" ); $reply = ""; if
-
PHP 正则表达式验证中文的问题
$str = '中华人民共和国123456789abcdefg'; echo preg_match("/^[\u4e00-\u9fa5_a-zA-Z0-9]{3,15}$",$strName); 运行一下上面这段代码,看会有什么提示信息? Warning: preg_match(): Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 3 in F:\wwwroot\
-
php用户注册信息验证正则表达式
下面这个正则验证用户名的方法原则是这样的用户名必须是由字母带数字带定划线组成了,下面一起来看看例子吧. 1.检查用户名是否符合规定"两位以上的字母,数字,或者下划线",代码如下: /** * 检查用户名是否符合规定 * * @param STRING $username 要检查的用户名 * @return TRUE or FALSE */ function is_username($username) { $strlen = strlen($username); if (!preg_m
-
php使用正则验证中文
php用preg_match来匹配并判断一个字符串中是否含有中文或者都是中文的方法如下: $str = 'php学习博客'; if(preg_match('/[\x7f-\xff]/', $str)){ echo '字符串中有中文<br/>'; }else{ echo '字符串中没有中文<br/>'; } if(preg_match('/^[\x7f-\xff]+$/', $str)){ echo '字符串全是中文'; }else{ echo '字符串不全是中文'; } 以上程序的
-
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
本文实例需要验证的内容:邮件地址.Url地址.电话号码.邮政编码,验证方法分享给大家供大家参考,具体内容如下 1.电子邮件地址的校验 <?php /* 校验邮件地址*/ function checkMail($email) { //用户名,由"\w"格式字符."-"或"."组成 $email_name= "\w|(\w[-.\w]*\w)"; //域名中的第一段,规则和用户名类似,不包括点号"." $
-
php URL验证正则表达式
复制代码 代码如下: <?php $url = 'http://www.baidu.com/zongzi/oo.html'; $n = preg_match_all("/http:[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.]{1}[a-z\d]*[\/]*[A-Za-z\d]*[\/]*[A-Za-z\d]*[.]*html/",$url,$array); var_dump($array); ?>
-
php 手机号码验证正则表达式
比较简洁的代码一: $str = ''; $isMatched = preg_match('/^0?(13|14|15|17|18)[0-9]{9}$/', $str, $matches); var_dump($isMatched, $matches); 代码二 <?php //正则表达式 $tel = "15558530459"; //作者的手机号码,如果有疑问可以电话联系我,或者QQ联系我,我的QQ是mezongzi@qq.com if (strlen($tel) == &q
-
PHP实现的常规正则验证helper公共类完整实例
本文实例讲述了PHP实现的常规正则验证helper公共类.分享给大家供大家参考,具体如下: 主要代码功能: 弥补平时项目对于验证功能这块的不严谨.具体细分的常规验证, 手机号/电话/小灵通验证, 字符串长度区间合法验证, 邮箱验证, 使用正则验证数据. /** * * * 常规验证helper公共类 * * */ class CheckForm { //手机号/电话/小灵通 验证 public function Mobile_check($mobile,$type = array()) { /*
-
php下常用表单验证的正则表达式
function is_email($str){ //检验email return preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", $str); } function is_url($str){ //检验网址 return preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\&
-
php password密码验证正则表达式(8位长度限制)
复制代码 代码如下: <?php //密码验证 $password = "zongzi_Abc_oo13a2"; $n = preg_match_all("/^[a-zA-Z\d_]{8,}$/",$password,$array); //长度是8或更多 var_dump($array); ?>
-
Ajax和PHP正则表达式验证表单及验证码
模式匹配符: \:转义字符 例如:\b转义了b ^:正则表达式开始符号 $:正则表达式结束符号 *:匹配前面的字符出现0次或者n次 +:匹配前面的字符出现1次或者n次 ?:匹配前面的字符出现0次或者1次 .:匹配除了换行符以外的所有单个字符 |:或者的意思,例如x|y 匹配x或者y {n}:匹配前面的n个字符 {n,m}:匹配至少n个最多m个前面字符 [xyz]:匹配中括号里的任意一个字符 [^xyz]:匹配除了中括号里的任意一个字符等价于[0-9] \w:匹配任意一个数字或字母或下划线 等价于
-
php不用正则验证真假身份证
直接看代码吧,很简单的一个PHP类 复制代码 代码如下: <?php $IDCard = new IDCard(); var_dump($IDCard::isCard($_GET['card'])); /** * 身份证处理类 */ class IDCard { //检证身份证是否正确 public static function isCard($card) { $card = self::to18Card($card); if (st
随机推荐
- Mootools 1.2教程 选项卡效果(Tabs)
- C# 8.0新特性介绍
- js实现背景图自适应窗口大小
- 分享用于操作FTP的客户端C#类
- 在PHP语言中使用JSON和将json还原成数组的方法
- asp中 select top 问题!~
- MySQL里面的子查询实例
- IE与firefox之jquery用法区别
- java基础之标签、按钮和按钮事件简介
- php实现读取超大文件的方法
- win7下Apache2.2+Tomcat7.0整合配置详解
- java不可逆加密算法之md5加密算法使用示例
- 动态库调用静态库示例讲解
- 智能手表开发API接口
- Android自定义View之组合控件实现类似电商app顶部栏
- c#图像截取实例
- 简单分析针对ARM平台的C语言程序的编译问题
- Android简单实现一个颜色渐变的ProgressBar的方法
- python spyder中读取txt为图片的方法
- 基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
其他
- mysql 查看哪个查询语句最频繁
- String 转成 rdd
- photoview 取消点击缩放
- 易语言网页填表之登录
- python 链接地址解析
- vue点击当前行变色
- vue切换tab页后再回到这个页面数据保留
- js 桥 调用android 原生 拍照
- jq get回传 Map
- scatter怎么画小圆
- python webdriver怎么在某个区域内任意点击
- 神庙逃亡这类游戏用什么开发
- 如何卸载visual studio2022
- java内部内编译完$
- java boolean 定义is开头,如何返回is开头
- js 修改befor
- Ubuntu 20.4 优化与配置
- python 读取zip包内文件创建时间
- html一个页面实现vue父子传值
- pycharm 快速加引号