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中使用CURL伪造来路抓取页面或文件
May 04 PHP
第四章 php数学运算
Dec 30 PHP
apache php模块整合操作指南
Nov 16 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
PHP中call_user_func_array回调函数的用法示例
Nov 26 PHP
利用php + Laravel如何实现部署自动化详解
Oct 11 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
Laravel 实现密码重置功能
Feb 23 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
PHP的Trait机制原理与用法分析
Oct 18 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
Jan 04 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中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
vue + elementUI实现省市县三级联动的方法示例
2019/10/29 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
python自动化测试之setUp与tearDown实例
2014/09/28 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
Python多线程正确用法实例解析
2020/05/30 Python
如何一键升级Python所有包
2020/11/05 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
会计电算化专业个人的自我评价
2013/11/24 职场文书
修理厂厂长岗位职责
2014/01/30 职场文书
专业技术职务聘任书
2014/03/29 职场文书
优秀家长事迹材料
2014/05/17 职场文书
公司经理任命书
2014/06/05 职场文书
教师批评与自我批评(群众路线)
2014/10/15 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
2016读书月活动心得体会
2016/01/14 职场文书