PHP正则判断网址、email、手机号
封面图
•
2025-10-28
•
PHP
165
0
0
0
在 PHP 中,可以使用正则表达式(`preg_match()`)来判断一个字符串是否符合 **网址(URL)**、**电子邮件(Email)** 或 **手机号(Phone Number)** 的格式。下面分别给出这三种常见验证的示例代码。 --- ## ✅ 1. 判断网址(URL) ```php function isValidUrl($url) { $pattern = '/^(https?:\/\/)?' . // 匹配 http:// 或 https:// '([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}' . // 域名部分 '(:[0-9]+)?' . // 可选端口 '(\/[^\s]*)?$/'; // 路径和查询参数 return preg_match($pattern, $url) === 1; } // 示例 $url = "https://www.example.com"; if (isValidUrl($url)) { echo "是有效的网址"; } else { echo "不是有效的网址"; } ``` --- ## ✅ 2. 判断电子邮件(Email) ```php function isValidEmail($email) { $pattern = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/'; return preg_match($pattern, $email) === 1; } // 示例 $email = "user@example.com"; if (isValidEmail($email)) { echo "是有效的邮箱"; } else { echo "不是有效的邮箱"; } ``` --- ## ✅ 3. 判断手机号(以中国手机号为例) 中国手机号通常为 **11位数字**,以 `13`, `14`, `15`, `17`, `18`, `19` 开头: ```php function isValidPhone($phone) { $pattern = '/^1[3-9]\d{9}$/'; return preg_match($pattern, $phone) === 1; } // 示例 $phone = "13812345678"; if (isValidPhone($phone)) { echo "是有效的手机号"; } else { echo "不是有效的手机号"; } ``` --- ## 📌 注意事项 - 正则表达式只能做基本格式校验,不能完全保证 URL 存在或 Email 真实。 - 对于更复杂的验证(如域名有效性、邮件服务器验证等),建议使用专门的函数或库(如 `filter_var()`)。 --- ## ✅ 使用 `filter_var()` 更简洁(推荐) PHP 提供了内置函数 `filter_var()` 来验证 URL 和 Email,更简单可靠: ```php $email = "user@example.com"; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "有效邮箱"; } else { echo "无效邮箱"; } $url = "https://example.com"; if (filter_var($url, FILTER_VALIDATE_URL)) { echo "有效网址"; } else { echo "无效网址"; } ``` --- 如需其他国家的手机号格式,也可以告诉我,我可以提供对应的正则表达式。
上一篇:
PHP获取百度收录数量及百度快照
下一篇:
thinkphp 做的一个无限循环分类
标题录入,一次不能超过6条
留言
评论