10个实用的PHP正则表达式汇总


Posted in PHP onOctober 23, 2014

本文实例讲述了10个实用的PHP正则表达式汇总,分享给大家供大家参考。具体如下:

正则表达式是程序开发中一个重要的元素,它提供用来描述或匹配文本的字符串,如特定的字符、词或算式等。但在某些情况下,用正则表达式去验证一个字符串比较复杂和费时。本文为你介绍10种常见的实用PHP正则表达式的写法,希望对你的工作有所帮助。

1. 验证E-mail地址

这是一个用于验证电子邮件的正则表达式。但它并不是高效、完美的解决方案。在此不推荐使用。

$email = "test@ansoncheung.tk";

if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {

    echo "Your email is ok.";

} else {

    echo "Wrong email address format";

}

为了更加有效验证电子邮件地址,推荐使用filer_var 。

if (filter_var('test+email@ansoncheung', FILTER_VALIDATE_EMAIL)) {

    echo "Your email is ok.";

} else {

    echo "Wrong email address format.";

}

2. 验证用户名

这是一个用于验证用户名的实例,其中包括字母、数字(A-Z,a-z,0-9)、下划线以及最低5个字符,最大20个字符。同时,也可以根据需要,对最小值和最大值做合理的修改。

$username = "user_name12";

if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {

    echo "Your username is ok.";

} else {

    echo "Wrong username format.";

}

3. 验证电话号码

这是一个验证美国电话号码的实例。

$phone = "(021)423-2323";

if (preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x', $phone)) {

    echo "Your phone number is ok.";

} else {

    echo "Wrong phone number.";

}

4. 验证IP地址

这是一个用来验证IPv4地址的实例。

$IP = "198.168.1.78";

if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {

    echo "Your IP address is ok.";

} else {

    echo "Wrong IP address.";

}

5. 验证邮政编码

这是一个用来验证邮政编码的实例。

$zipcode = "12345-5434";

 if (preg_match("/^([0-9]{5})(-[0-9]{4})?$/i",$zipcode)) {

 echo "Your Zip code is ok.";

 } else {

 echo "Wrong Zip code.";

 }

6. 验证SSN(社会保险号)

这是一个验证美国SSN的实例。

$ssn = "333-23-2329";

if (preg_match('/^[\d]{3}-[\d]{2}-[\d]{4}$/',$ssn)) {

    echo "Your SSN is ok.";

} else {

    echo "Wrong SSN.";

}

7. 验证信用卡号

$cc = "378282246310005";

if (preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/', $cc)) {

    echo "Your credit card number is ok.";

} else {

    echo "Wrong credit card number.";

}

8. 验证域名

$url = "http://ansoncheung.tk/";

 if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {

 echo "Your url is ok.";

 } else {

 echo "Wrong url.";

 }

9. 从特定URL中提取域名

$url = "http://ansoncheung.tk/articles";

 preg_match('@^(?:http://)?([^/]+)@i', $url, $matches);

 $host = $matches[1];

echo $host;

10. 将文中关键词高亮显示

$text = "Sample sentence from AnsonCheung.tk, regular expression has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor";

$text = preg_replace("/\b(regex)\b/i", '<span style="background:#5fc9f6">\1</span>', $text);

echo $text;

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
thinkphp3.0 模板中函数的使用
Nov 13 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
php eval函数一句话木马代码
May 21 PHP
CodeIgniter中使用Smarty3基本配置
Jun 29 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
PHP数据对象PDO操作技巧小结
Sep 27 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 14 PHP
PHP中怎样防止SQL注入分析
Oct 23 #PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 #PHP
常用PHP框架功能对照表
Oct 23 #PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 #PHP
php中字符串和正则表达式详解
Oct 23 #PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
Oct 23 #PHP
PHP制作图形验证码代码分享
Oct 23 #PHP
You might like
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
2014/10/30 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
PHP结合jQuery实现红蓝投票功能特效
2015/07/22 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
详解支持Angular 2的表格控件
2017/01/19 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
jQuery复合事件用法示例
2017/06/10 jQuery
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
Chrome调试折腾记之JS断点调试技巧
2017/09/11 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
js制作提示框插件
2020/12/24 Javascript
python实现的一个p2p文件传输实例
2014/06/04 Python
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
python解决网站的反爬虫策略总结
2016/10/26 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
行政助理岗位职责
2013/11/10 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
求职意向书
2014/04/01 职场文书
应届大学生求职信
2014/07/20 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2016年社区植树节活动总结
2016/03/16 职场文书
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android