第23章 PHP 正则 常用实战场景大全

一、手机号精准校验

规则

以1开头,第二位3-9,后面9位数字,总共11位。

php

$phone = '13612345678';
$preg = '/^1[3-9]\d{9}$/';
if (preg_match($preg, $phone)) {
echo '手机号格式正确';
} else {
echo '手机号格式错误';
}
 

二、邮箱格式校验

基础通用邮箱规则

php

$email = 'test@qq.com';
$preg = '/^\w+@\w+(.\w+)+$/';
preg_match($preg, $email) ? echo '邮箱正确' : echo '邮箱错误';
 

三、用户名格式校验

规则:4–16位,字母、数字、下划线,不能纯数字

php

$user = 'user123';
$preg = '/^[a-zA-Z
]\w{3,15}$/';
 

四、密码强度校验

6–20位,必须包含字母+数字

php

$pwd = 'abc123456';
$preg = '/^(?=.[a-zA-Z])(?=.\d).{6,20}$/';
 

五、匹配纯中文

只能输入汉字,无符号字母数字

php

$name = '张三';
$preg = '/^[\u4e00-\u9fa5]{2,6}$/u';
 

六、提取网页标签内容

提取所有div标签里的内容

php

$html = '标题1标题2';
preg_match_all('/(.*?)/s', $html, $res);
print_r($res[1]);
 

七、过滤HTML所有标签

把所有  标签清空

php

$str = '我是内容';
$new = preg_replace('//s','',$str);
echo $new;
 

八、替换多个连续空格为单个

php

$str = 'PHP 正则 教程';
$new = preg_replace('/\s+/',' ',$str);
echo $new;
 

九、常用正则易错避坑

1. 不加 ^ $ 会包含匹配,校验格式必须加首尾限制
2. 匹配中文、UTF8 必须加修饰符  u 
3. 抓取标签内容一定要用  .*?  非贪婪
4.  .  默认不匹配换行,加  s  修饰符生效
5. 复杂规则多用  ()  分组、 |  多选分支

十、本章核心总结

日常开发高频场景:手机号、邮箱、用户名、密码、中文、HTML标签提取、敏感词过滤、空格整理
全部用 PHP  preg_  系列函数搞定,是表单校验和爬虫必备技能。
【瓜分奖池】PHP基础第二十三章 第5张插图