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 相关文章推荐
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
May 10 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
Dec 19 PHP
PHP使用JSON和将json还原成数组
Feb 12 PHP
php curl 上传文件代码实例
Apr 27 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
PHP使用逆波兰式计算工资的方法
Jul 29 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 PHP
如何写php守护进程(Daemon)
Dec 30 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
PHP随机数函数rand()与mt_rand()的讲解
Mar 25 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
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
浅谈js原生拖放
2016/11/21 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python导入txt数据到mysql的方法
2015/04/08 Python
python中的错误处理
2016/04/10 Python
Python自动化导出zabbix数据并发邮件脚本
2019/08/16 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
Python实现简单猜数字游戏
2021/02/03 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
个人授权委托书格式
2014/08/30 职场文书
公务员个人总结
2015/02/12 职场文书
2016十一国庆节感言
2015/12/09 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android