常用正则表达式大全:手机号、邮箱、URL、身份证一次收齐
整理日常开发最高频的正则模板:中国手机号、邮箱、URL、身份证、IP、日期等,附语法要点与在线测试工具入口。
一、字符与数字类
- 整数:
^-?\d+$ - 手机号(中国大陆):
^1[3-9]\d{9}$(号段开放后按 1 开头 + 第二位 3-9 校验最稳) - 固定电话:
^(0\d{2,3}-)?\d{7,8}$ - 十六进制颜色:
^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
二、网络与标识类
- 邮箱:
^[\w.+-]+@[\w-]+(\.[\w-]+)+$(覆盖 99% 常规场景;严格 RFC 校验极其复杂,不建议在正则里追求完美) - URL:
^https?://[\w.-]+(:\d+)?(/[\w./?%&=-]*)?$ - IPv4:
^(25[0-5]|2\d\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2\d\d|1\d\d|[1-9]?\d)){3}$ - 身份证 18 位:
^\d{17}[\dXx]$(严格校验还需核对出生日期与校验位)
三、日期与文本类
- 日期 yyyy-MM-dd:
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ - 时间 HH:mm:
^([01]\d|2[0-3]):[0-5]\d$ - 汉字:
^[\u4e00-\u9fa5]+$ - 邮编:
^\d{6}$
四、使用建议
- 先在线测试再上线:边界值(空串、超长、特殊字符)逐个过一遍。
- 别用正则做深度校验:身份证校验位、邮箱真实存在性,正则只能管格式,业务校验交给后端逻辑。
- 注意语言差异:JS 的 \d 等简写在部分引擎里要双写转义,Python 建议用原生字符串
r'...'。
在线体验
不用装任何环境,直接用本站正则在线测试工具在线操作,数据都在浏览器本地处理,方便又安全。
常见问题
手机号正则 1[3-9] 开头就够了吗?
格式校验够用且不会误杀新号段。如果业务要求严格(如发送验证码),以运营商返回结果为准,正则只做第一道拦截。
为什么我的邮箱正则匹配不了中文邮箱?
中文邮箱(如 用户@域名.中国)需在字符类中加入汉字区间,并在 @ 前后允许更多 Unicode 字符;国内业务遇到再针对性扩展即可。
正则里的 ^ 和 $ 什么时候要加?
做整串校验(如表单验证)必须加,锚定开头结尾;做内容提取(如从长文本里抓链接)则不要加,否则匹配不到中间的片段。
