手机号正则和邮箱正则怎么写 - 常用正则表达式示例大全
1410 字
7 分钟
手机号正则和邮箱正则怎么写 - 常用正则表达式示例大全
🌟 最常用的正则,直接抄
写表单校验、数据清洗时,最常搜的就是”手机号正则""邮箱正则”。本文给出可直接使用的表达式与解释,覆盖日常 90% 的格式校验。想看现成的、能直接生成和验证的,用常用格式正则工具。
提醒:正则只能校验格式,不能校验”号码是否存在""密码是否泄露”。真实有效性需代码算法或联网核验。
📱 手机号正则(中国大陆)
^1[3-9]\d{9}$逐段解释:
| 片段 | 含义 |
|---|---|
^ | 字符串开头 |
1 | 手机号以 1 开头 |
[3-9] | 第二位是 3~9(排除早期号段) |
\d{9} | 后面再跟 9 位数字 |
$ | 字符串结尾 |
- ✅ 匹配:
13812345678、19900001111 - ❌ 不匹配:
12345678901(第二位是 2)、1381234567(只有 10 位)
更宽松的写法(不校验号段):
^1\d{10}$带区号固定电话(如 010-12345678):
^0\d{2,3}-?\d{7,8}$📧 邮箱正则
^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$| 片段 | 含义 |
|---|---|
[A-Za-z0-9._%+-]+ | 用户名:字母、数字、点、下划线、百分号、加号、减号 |
@ | 分隔符 |
[A-Za-z0-9.-]+ | 域名部分 |
\.[A-Za-z]{2,} | 顶级域名,至少 2 个字母 |
- ✅ 匹配:
user@example.com、a.b+tag@mail.co.uk - ❌ 不匹配:
user@、@example.com、user@example(缺顶级域名)
严格符合 RFC 的邮箱正则极其复杂,实践中用上面这种”够用且好维护”的即可。
🪪 身份证正则(18 位)
^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[0-9Xx]$| 片段 | 含义 |
|---|---|
[1-9]\d{5} | 6 位地址码 |
(18|19|20)\d{2} | 出生年份前两位 + 后两位 |
(0[1-9]|1[0-2]) | 月份 |
(0[1-9]|[12]\d|3[01]) | 日期 |
\d{3} | 顺序码 |
[0-9Xx] | 校验位(可能是 X) |
正则只能校验”格式像不像”,校验位是否合法需要额外算法;日期合法性(如 2 月 30 日)正则也覆盖不全。
💳 银行卡号正则
^\d{16,19}$银联卡(62 开头):
^62\d{14,17}$严格校验需 Luhn 算法,正则无法完成。前端正则只做格式初筛。
🔗 URL 正则
简版:
^https?://[^\s/$.?#].[^\s]*$宽松提取版(用于从文本提取):
https?://[^\s]+📅 日期与时间
| 目标 | 正则 |
|---|---|
| 日期 YYYY-MM-DD | ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ |
| 时间 HH | ^([01]\d|2[0-3]):[0-5]\d$ |
| 日期时间 | ^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}(:\d{2})?$ |
🔢 数字类
| 目标 | 正则 |
|---|---|
| 整数 | ^-?\d+$ |
| 正整数 | ^[1-9]\d*$ |
| 小数 | ^-?\d+\.\d+$ |
| 两位小数 | ^-?\d+(\.\d{1,2})?$ |
| 金额(带千分位) | ^\d{1,3}(,\d{3})*(\.\d{1,2})?$ |
| 百分比 | ^\d+(\.\d+)?%$ |
🔤 字符类
| 目标 | 正则 |
|---|---|
| 中文 | [\u4e00-\u9fa5]+ |
| 英文 | [A-Za-z]+ |
| 中英文 | [\u4e00-\u9fa5A-Za-z]+ |
| 数字字母 | [A-Za-z0-9]+ |
| 中文姓名(2~4 字) | ^[\u4e00-\u9fa5]{2,4}$ |
| 用户名 | ^[A-Za-z]\w{3,15}$ |
| 密码(8~20,含大小写数字) | ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,20}$ |
🌐 网络类
| 目标 | 正则 |
|---|---|
| IPv4 | ^((25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]?\d?\d)$ |
| 域名 | ^([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}$ |
| MAC 地址 | ^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$ |
🛠 开发场景
| 目标 | 正则 |
|---|---|
| 文件名 | `^[^\/:*?”<> |
| 文件扩展名 | \.([a-zA-Z0-9]+)$ |
| 版本号 | ^\d+\.\d+\.\d+$ |
| UUID | ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$ |
| 十六进制颜色 | ^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ |
🌐 不同语言的写法差异
大多数表达式在 JavaScript、Python、Java、Go、PHP 中通用,但要注意:
- 转义:在字符串里写正则时,反斜杠往往要写两次(如
"\\d{11}"); - 分组语法:命名捕获组的写法各语言不同(
(?<name>)/(?P<name>)); - Flags:忽略大小写等开关的名称与位置不同。
具体写法用多语言引擎查看。
❓ 常见问题(FAQ)
手机号正则能校验号码真实性吗?
不能。正则只能校验格式(号段 + 长度),号码是否存在、是否停机无法通过正则判断。为什么有的手机号正则写法不一样?
号段会随运营商调整,不同资料对第二位范围的定义不同。用 `1[3-9]\d{9}` 兼容性较好。邮箱正则要不要严格按 RFC?
不建议。严格版极复杂且难维护;用本文的实用版即可,真正有效性用"发验证邮件"确认。身份证校验位能用正则算吗?
不能,需要加权算法。正则只做格式校验。想验证写好的正则怎么办?
用[正则测试器](https://www.xingdian.net/app/regex/tester/)粘贴文本,或直接用[常用格式正则](https://www.xingdian.net/app/regex/formats/)的验证模式。能匹配 IPv6 吗?
IPv6 较长较复杂,可用简化写法或分段校验;本站格式库覆盖常见格式。密码正则为什么用前瞻?
"至少包含某类字符"是存在性条件,前瞻只检查不消费,最适合表达。见[正则前瞻与后顾](https://www.xingdian.net/blog/posts/regex-lookahead-lookbehind/)。能批量校验一批文本吗?
可以,用[常用格式正则](https://www.xingdian.net/app/regex/formats/)的验证模式逐行校验。🧩 更多格式正则
车牌号(含新能源)
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-Z0-9]{5,6}$护照号(简版)
^[EeGg]\d{8}$统一社会信用代码(18 位)
^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$邮政编码
^[1-9]\d{5}$QQ 号
^[1-9][0-9]{4,10}$微信号
^[a-zA-Z][-_a-zA-Z0-9]{5,19}$域名(不含协议)
^([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$文件扩展名
\.([a-zA-Z0-9]+)$这些都可以在常用格式正则里找到并验证。
⚠️ 边界与陷阱
- 号段会变:手机号、车牌规则会随政策调整,正则需维护;
- 长度陷阱:
\d{11}会匹配长数字中的 11 位,需加\b或^$边界; .的作用域:默认不匹配换行,跨行要开s;- 全角字符:中文输入法可能输入全角数字/字母,需额外处理;
- 大小写:十六进制、车牌等注意大小写,可用
i或显式字符集; - 过度严格:校验规则太严会误伤合法输入(如国际邮箱、特殊姓名)。
💬 总结
手机号用 ^1[3-9]\d{9}$,邮箱用 ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$,身份证、URL、日期、IP 等按上面的表抄即可。需要更多格式(银行卡、MAC、版本号、UUID 等),打开常用格式正则一键生成并验证。
立即体验:访问 常用格式正则
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
最后更新于 2026-09-13,距今已过 32 天
部分内容可能已过时
相关文章 智能推荐
1
身份证/银行卡正则怎么写 - 校验规则与示例
正则工具 身份证正则、银行卡号正则怎么写?本文给出 18 位身份证、15 位旧身份证、银行卡号的表达式与逐段解释,说明校验位与格式校验的区别。附在线常用格式正则工具。
2
Python 和 Java 正则怎么写 - 跨语言正则语法对照
正则工具 Python 和 Java 正则写法对照:原始字符串、命名捕获组、Flags、反向引用、前瞻后顾的差异,附代码示例。帮你把正则正确迁移到目标语言。在线多语言正则工具。
3
正则替换怎么用 - 在线正则表达式批量替换工具
正则工具 正则替换怎么用?在线正则表达式替换工具支持 $1、$&、$<name> 等替换引用,实时显示替换前后文本与替换次数。含日期改写、去空格、加前缀、键值重排等 10+ 场景示例与 FAQ,浏览器本地处理。
4
正则表达式生成器 - 按条件或示例在线生成正则
正则工具 不会写正则?用正则生成器按条件生成:字符类型、长度、前缀后缀、数字范围、固定结构;也能从示例反推候选正则。在线免费,浏览器本地处理。
5
密码正则和用户名正则怎么写 - 强度校验实例
正则工具 密码正则、用户名正则怎么写?本文给出不同强度密码(含大小写/数字/特殊字符)的正则、用户名规则正则,并用前瞻断言实现"至少包含"条件。附在线常用格式正则工具。
随机文章 随机推荐