erik

艾瑞可erik

  • 主页
  • 归档
文章 (264) 手册 工具 友链 关于我
erik

艾瑞可erik

  • 主页
  • 归档

实用的PHP正则表达式

2014-12-09
字数统计: 938字   |   阅读时长: 4分   |  本文总阅读量69次

正则表达式是程序开发中一个重要的元素,它提供用来描述或匹配文本的字符串,如特定的字符、词或算式等。但在某些情况下,用正则表达式去验证一个字符串比较复杂和费时。本文为你介绍10种常见的实用PHP正则表达式的写法,希望对你的工作有所帮助。 1. 验证E-mail地址 这是一个用于验证电子邮件的正则表达式。但它并不是高效、完美的解决方案。在此不推荐使用。

Php代码

1
2
3
4
5
6
$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。

Php代码

1
2
3
4
5
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个字符。同时,也可以根据需要,对最小值和最大值做合理的修改。

Php代码

1
2
3
4
5
6
$username = "user_name12";
if (preg_match('/^\[a-z\\d_\]{5,20}$/i', $username)) {
    echo "Your username is ok.";
} else {
    echo "Wrong username format.";
}

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

Php代码

1
2
3
4
5
6
$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地址的实例。

Php代码

1
2
3
4
5
6
$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. 验证邮政编码 这是一个用来验证邮政编码的实例。

Php代码

1
2
3
4
5
6
$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的实例。

Php代码

1
2
3
4
5
6
$ssn = "333-23-2329";
if (preg_match('/^\[\\d\]{3}-\[\\d\]{2}-\[\\d\]{4}$/',$ssn)) {
    echo "Your SSN is ok.";
} else {
    echo "Wrong SSN.";
}

7. 验证信用卡号

Php代码

1
2
3
4
5
6
$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. 验证域名

Php代码

1
2
3
4
5
6
$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中提取域名

Php代码

1
2
3
4
5
 $url = "http://ansoncheung.tk/articles";
preg_match('@^(?:http://)?(\[^/\]+)@i', $url, $matches);
$host = $matches\[1\];

echo $host;

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

Php代码

1
2
3
4
5
$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;

原文来自http://www.iteye.com/news/23231 ITeye黑板报

本文作者: 艾瑞可erik
本文链接: https://erik.xyz/2014/12/09/shi-yong-de-php-zheng-ze-biao-da-shi/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
赏

一只PHP开发的程序猿,偶尔搞搞摄影、画画、写作、顺便睡觉。

支付宝
微信
  • php
  • php服务器
  • php正则
  • 正则
  • 转载

扫一扫,分享到微信

微信分享二维码
linux下使用tar命令
分析师为Fire Phone发展支招 三步骤或起死回生
0 条评论
未登录用户
支持 Markdown 语法

来做第一个留言的人吧!

艾瑞可erik·导航 | 算法演示 | postwoman | slim | zola | layui
© 2014-2025 艾瑞可erik | 粤ICP备2020136226号-1 | 粤公网安备 粤公网安备 44030602005398号
本站总访问量86960次 本站访客数70978人次
  • 文章
  • 手册
  • 工具
  • 友链
  • 关于我

tag:

  • 日志
  • 工具
  • jquery
  • jquery插件
  • php扩展
  • php技巧
  • php类库
  • php资源
  • js
  • css
  • php
  • web
  • 代码
  • 压缩
  • php服务器
  • 随笔
  • php实例
  • 说说
  • 趣闻
  • 转载
  • php库
  • nginx
  • 互联
  • 项目实战
  • javascript
  • php应用
  • 浮点
  • 漏洞
  • 负载均衡
  • kali
  • kali安装
  • http
  • http服务器
  • 农业系统
  • 系统设计
  • 克莱姆法则
  • 行列式
  • n阶行列式
  • 支付系统
  • 支付
  • apache优化
  • apache隐藏index
  • nginx优化
  • nginx隐藏index
  • centos
  • linux
  • 日常
  • seo
  • 优化
  • 摘要
  • 文章
  • 游记
  • ca证书
  • 证书生成
  • 二战
  • 二战熊
  • 西伯利亚熊
  • centos软件
  • yum仓库
  • 软件
  • centos安装chromium报错
  • chromium安装报错
  • svn
  • 代码提交
  • deb
  • deb/rpm互转
  • deb转rpm
  • rpm互转
  • centos7安装steam
  • centos安装steam
  • centos安装吃鸡steam
  • linux安装steam
  • steam安装
  • centos软件安装
  • centos6.5
  • linux系统
  • centos7安装Redis Desktop Manager
  • centos7安装redis桌面
  • centos安装redis桌面
  • linux安装centos7安装Redis Desktop Manager
  • Redis Desktop Manager
  • redis桌面
  • centos7
  • centos7-wine
  • wine
  • wine安装
  • root密码
  • root密码重置
  • 忘记root密码
  • memcache
  • memcached
  • 生活手记
  • 艾瑞可erik
  • 程序员
  • 开源云
  • 容器
  • cncf
  • 监控
  • composer
  • composer部署
  • 内网部署composer
  • cphalcon
  • cphalcon报错
  • css中的em
  • 响应式字体
  • 响应式布局样式
  • proxy代理搭建
  • 代理服务器搭建
  • proxy服务器
  • 查找
  • 排序
  • 快速排序
  • 冒泡排序
  • 二分查找
  • datahub
  • datahub安装
  • deepin
  • emergency
  • emergency mode
  • deepin黑屏
  • 清理系统
  • 清理c盘
  • dns
  • 域名监测
  • 网站监测
  • docker
  • php安装
  • 杂谈
  • ecshop
  • 框架
  • beego数据分页
  • 分页
  • elasticsearch
  • elasticsearch搭建
  • elasticsearch集群
  • phone
  • 手机
  • 新闻
  • 免费
  • jenkis
  • jenkis教程
  • 随笔吐槽
  • 算法
  • ping
  • ping服务器
  • 各大网站ping
  • 搜引擎ping服务器
  • go获取ip
  • go中pdf生成
  • go中限流
  • go对接快递签名
  • go时间获取
  • go类型转换
  • 微服务
  • go-zero
  • rpc
  • go加密
  • go解密
  • 归
  • 吐槽
  • hadoop
  • hadoop2.8.0
  • hadoop安装教程
  • hadoop安装详细教程
  • hadoop教程
  • hadoop部署
  • php大全
  • php资料
  • hadoop3
  • hadoop配置
  • log4j2
  • 数据库
  • hbase安装教程
  • hbase
  • http1.1
  • http2.0
  • 会话
  • 会话原理
  • hyperf
  • 杂录
  • 新冠肺炎
  • springboot
  • springboot内网部署
  • linux恢复
  • linux误删
  • linux命令
  • linux命令汇总
  • jenkins
  • jetbtrains
  • phpstorm
  • 搜索引擎
  • 图片
  • 素材
  • jq
  • jq侧边导航
  • 侧边导航
  • js判断浏览器
  • js判断浏览器版本
  • 判断浏览器
  • 浏览器版本判断
  • 获取浏览器信息
  • kali右键汉化
  • kali桌面右键汉化
  • kali右键创建文件
  • 区块链
  • lanmp
  • php环境独立配置
  • 服务器
  • 劳动纠纷
  • 追缴工资
  • 申请仲裁
  • flash
  • 表单
  • linux报错
  • linux中update-command-not-found
  • linux运行命令报错
  • web前端
  • web优化
  • 撮合算法
  • 撮合
  • php撮合算法
  • maven搭建库
  • maven
  • maven内网库
  • 高级缓存配置
  • mongodb
  • mongodb权限
  • 可穿戴设备
  • mysql
  • 分库分表
  • mysql应对千万级
  • mysql瓶颈
  • mysql瓶颈解决办法
  • redis
  • 数据一致性
  • mysql消息
  • mysql队列
  • mysql高并发
  • mysql存储
  • mysql引擎
  • mysql数据表设计选择
  • mysql监控
  • mysql性能
  • 内网支付
  • 内网穿透
  • 支付接口本地化开发
  • 本地挂网
  • 穿透
  • go
  • new和make的区别
  • 红包算法
  • 深圳劳动法服务部门
  • 非关系型数据库
  • onethink
  • oop
  • php管理系统
  • 开放接口开发
  • openresty
  • openvas
  • openvas安装
  • php变量
  • php超级全局变量
  • php超级变量
  • php基本类型
  • php数据类型
  • php对接微信支付
  • 微信支付
  • 微信支付回调
  • php设计模式
  • php函数
  • php随机数
  • php获取闰年
  • 闰年.php时间
  • php环境
  • php集成环境
  • 服务器集成环境
  • 数组函数
  • 数组排序函数
  • php数学函数
  • php面试题
  • php面向对象
  • 面向对象
  • php-zookeeper
  • zookeeper3.5.5
  • php-zookeeper扩展
  • php串口开发
  • php倒计时
  • php时间
  • 倒计时
  • 计算时间
  • PHP数组
  • 字符串函数
  • 排序函数
  • php的SPL
  • SPL手册
  • PHP算法
  • php递归
  • 递归
  • phpunit
  • phpunit安装
  • php过滤
  • 过滤
  • foreach
  • foreach报错
  • php中foreach报错
  • php中if
  • php中if判断
  • php的if
  • php字符串
  • php7中sphinx
  • php7中sphinx扩展
  • sphinx扩展
  • python
  • python库
  • a标签
  • a标签虚线
  • 虚线框
  • R语言
  • 数据随机化
  • redis总结
  • redis命令
  • redis监控
  • redis锁
  • redis分布式锁
  • 任意金额输入
  • 10元、5元、2元
  • 队列
  • 栈
  • 顺序表
  • 链表
  • 数据结构
  • 线性结构
  • 浏览器禁止操作视频
  • 禁止视频
  • js编辑
  • runjs
  • 在线编辑
  • 响应慢
  • 页面优化
  • rust
  • rust配置
  • seajs
  • session
  • 路由器烧录
  • 烧录
  • 极路由2烧录
  • 砖头烧录
  • 免费服务器
  • 空间
  • 资源
  • 深圳政府电话
  • 深圳电话
  • 特区电话
  • 居住证
  • 居住证签注
  • 深圳新居住证
  • 国庆骑行
  • 深圳珠海骑行
  • 骑行
  • 世界那么大
  • css3
  • css在线生成工具
  • css工具
  • php正则
  • 正则
  • shodan
  • 黑谷歌
  • 黒帽搜素
  • shopex
  • 可视化数据
  • 数据
  • 数据表
  • json
  • json数组
  • json解析
  • socket通信
  • socket多进程
  • socket
  • sql
  • sql优化
  • css3兼容360浏览器兼容模式
  • css圆角
  • 结构体转map
  • config
  • thinkphp
  • 配置文件
  • 树
  • 二叉树
  • js插件
  • web自适应
  • 响应式布局
  • 响应式所有分辨率
  • 自适应布局
  • 自适应所有分辨率
  • mysql设置超时,超时
  • markdown
  • wget
  • wget抓取
  • 网站抓取
  • 我在
  • wordpress
  • wordpress标签
  • 域名合并
  • wpscan
  • usbrip
  • 无限极分类
  • php无限极
  • 分类tree
  • 无限极分类树型
  • xhprof
  • webman
  • laravel
  • composer插件
  • html
  • 响应式分辨率
  • 响应式调试
  • 自适应屏幕
  • 携程
  • 携程攻击
  • 携程网站瘫痪
  • 物理删除
  • 3D
  • 动画
  • 平台
  • 游戏
  • 虚幻4引擎编辑
  • 生成唯一id
  • 生成id
  • 发邮件
  • 邮件函数
  • 储蓄卡免年费
  • 银行卡
  • 银行卡免年费
  • composer安装
  • composer配置
  • 项目创建composer
  • mysql优化
  • mysql读写优化
  • 数据库优化,mysql语句优化
  • php加密
  • php技术
  • 夕阳
  • mysql函数
  • php中mysql函数
  • 互联网时代
  • 开源技术
  • web框架
  • php抓取图片
  • php批量抓取页面图片
  • 邮箱服务器
  • 正则表达式
  • 翻墙
  • 谷歌
  • 谷歌搜索

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 常用命令操作
  • 常用配置
  • 软件仓库
  • swoole
  • webman
  • swoft中文文档
  • Hyperf
  • Easyswoole
  • imi
  • Laravel中文文档
  • MongoDB权限说明
  • gin官方文档
  • Redis性能指标监控
  • Elasticsearch基本CURD
  • mysql性能
  • 故障分析
  • 正则表达式
  • Docker中文文档
  • KubeOperator文档
  • 深入理解PHP内核
  • gRPC中文文档
  • PHP标准规范
  • PHP中文手册
  • agentzh的Nginx教程
  • Nginx第三方模块试用记
  • openresty介绍
  • cors
  • W3C
  • 法律知识
  • 数据结构和算法动态可视化
  • XSS'OR
  • rot13
  • 在线工具
  • 正则表达式验证
  • kali工具
  • 测试工具
  • 安全工具
  • 数据工具
  • 实用工具
  • 监控工具
  • 云海鹰影博客
  • 小兔博客
  • 胡涂说
  • Ric's Blog
  • 介绍:已有十多年开发经验,主要语言PHP、Web、Go、Java、Python等,有涉及R、Rust、Ruby。 最大的收获就是学好一门语言,其他的更好学。
  • 站长:艾瑞可erik
  • 邮箱:erik@erik.xyz