常用正则表达式大全
开发必备正则合集,覆盖手机号、身份证、邮箱等常见验证场景,一键复制,在线测试
手机号3 个
中国大陆手机号
^1[3-9]\d{9}$匹配中国大陆11位手机号码,以1开头,第二位为3-9
✅ 匹配138001380001991234567815088886666
❌ 不匹配12345678901138001380013800138000123800138000
手机号(含国际区号)
^(\+86)?1[3-9]\d{9}$支持可选的+86国际区号前缀
✅ 匹配13800138000+8613800138000
❌ 不匹配8613800138000008613800138000
身份证2 个
身份证号(18位)
^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$匹配18位二代身份证号码,含出生日期校验
✅ 匹配11010119900307451832010219900101123444010119900101123X
❌ 不匹配11010119900307451110101199013074518010101199003074518
身份证号(15或18位)
(^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$)|(^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)同时兼容15位和18位身份证号码
✅ 匹配110101199003074518110101900307451
❌ 不匹配11010119900307451110101901307451
邮箱2 个
URL2 个
URL地址
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$匹配http和https开头的URL地址
✅ 匹配https://www.example.comhttp://example.com/path?q=1https://sub.domain.com:8080/path
❌ 不匹配ftp://example.comexample.comhttps://
URL(含中文)
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=\u4e00-\u9fa5]*)$扩展支持URL中包含中文字符
✅ 匹配https://example.com/路径http://site.com/搜索?q=你好
❌ 不匹配ftp://example.comnot a url
IP地址3 个
IPv4地址
^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$匹配合法的IPv4地址,每段0-255
✅ 匹配192.168.1.1255.255.255.00.0.0.010.0.0.1
❌ 不匹配256.1.1.1192.168.1192.168.1.1.1abc.def.ghi.jkl
IPv6地址
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$匹配完整格式的IPv6地址
✅ 匹配2001:0db8:85a3:0000:0000:8a2e:0370:7334fe80:0000:0000:0000:0000:0000:0000:0001
❌ 不匹配2001:db8:85a3::8a2e:370:7334192.168.1.1not:an:ipv6:address
IP地址(v4或v6)
(^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$)|(^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$)同时匹配IPv4和IPv6地址
✅ 匹配192.168.1.12001:0db8:85a3:0000:0000:8a2e:0370:7334
❌ 不匹配999.999.999.999not-an-ip
中文字符3 个
银行卡2 个
银行卡号
^[1-9]\d{15,18}$匹配16-19位银行卡号(不含空格)
✅ 匹配622202123456789012362220212345678906228480012345678901
❌ 不匹配123456789012345622202123456789012340123456789012345
银行卡号(含空格)
^[1-9]\d{3}(\s?\d{4}){3,4}$匹配带可选空格分隔的银行卡号
✅ 匹配6222 0212 3456 789062220212345678906222 0212 3456 7890 123
❌ 不匹配1234 5678 9012 34562220 2123 4567 890
车牌号3 个
普通车牌号
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$匹配中国大陆普通民用车牌号
✅ 匹配京A12345沪B1234D粤A123AB京A1234挂
❌ 不匹配A123456京1A2345京a12345
新能源车牌号
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁][A-Z][A-HJ-NP-Z0-9]{5}[DF]$匹配新能源汽车车牌号(6位字符+D/F结尾)
✅ 匹配京AD12345沪BF12345粤AD12345
❌ 不匹配京A123456京AD1234京AD1234A
车牌号(通用)
^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤川青藏琼宁][A-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳DF]$兼容普通和新能源车牌号
✅ 匹配京A12345京AD12345沪B1234D
❌ 不匹配A123456京1A2345
密码强度3 个
强密码
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$至少8位,包含大小写字母、数字和特殊字符
✅ 匹配Test@1234Hello#2024P@ssw0rd!
❌ 不匹配test1234TEST1234Test1234Te@1
中等密码
^(?=.*[a-zA-Z])(?=.*\d)[A-Za-z\d@$!%*?&]{6,}$至少6位,包含字母和数字
✅ 匹配Test1234abc123Hello1!
❌ 不匹配123456abcdeftest
日期格式3 个
日期(YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$匹配YYYY-MM-DD格式日期
✅ 匹配2024-01-152023-12-312000-06-01
❌ 不匹配2024-13-012024-00-1524-01-152024/01/15
日期(YYYY/MM/DD)
^\d{4}\/(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])$匹配YYYY/MM/DD格式日期
✅ 匹配2024/01/152023/12/312000/06/01
❌ 不匹配2024/13/012024/00/152024-01-15
日期时间
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])\s([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$匹配YYYY-MM-DD HH:mm:ss格式
✅ 匹配2024-01-15 08:30:002023-12-31 23:59:59
❌ 不匹配2024-01-15 24:00:002024-01-15 8:30:02024-01-15
QQ号1 个
QQ号
^[1-9]\d{4,10}$匹配5-11位QQ号,首位不为0
✅ 匹配12345123456789098765432101
❌ 不匹配012341234123456789012abc123
微信号1 个
微信号
^[a-zA-Z][a-zA-Z0-9_-]{5,19}$6-20位,以字母开头,支持字母、数字、下划线和减号
✅ 匹配wechat_01MyWeChatuser-name_2024
❌ 不匹配1wechatabcwechat!a12
邮政编码1 个
MAC地址3 个
MAC地址(冒号分隔)
^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$匹配冒号分隔的MAC地址
✅ 匹配00:1A:2B:3C:4D:5Eaa:bb:cc:dd:ee:ffFF:FF:FF:FF:FF:FF
❌ 不匹配00:1A:2B:3C:4D00:1A:2B:3C:4D:5E:6FGG:HH:II:JJ:KK:LL
MAC地址(短横线分隔)
^([0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$匹配短横线分隔的MAC地址
✅ 匹配00-1A-2B-3C-4D-5Eaa-bb-cc-dd-ee-ff
❌ 不匹配00-1A-2B-3C-4D00:1A:2B:3C:4D:5E
MAC地址(通用)
^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$同时匹配冒号和短横线分隔的MAC地址
✅ 匹配00:1A:2B:3C:4D:5E00-1A-2B-3C-4D-5E
❌ 不匹配00:1A:2B:3C:4D001A2B3C4D5E
正则表达式使用说明
基本语法
- . - 匹配任意单个字符
- \d - 匹配数字 [0-9]
- \w - 匹配字母数字下划线
- * - 匹配前面的表达式 0 次或多次
- + - 匹配前面的表达式 1 次或多次
- ? - 匹配前面的表达式 0 次或 1 次
- {n,m} - 匹配 n 到 m 次
- [abc] - 匹配 a、b 或 c
- ^...$ - 匹配字符串的开始和结束
使用提示
- 点击「复制正则」快速获取正则表达式
- 点击「在线测试」跳转正则测试工具验证
- 注意区分大小写:添加
i标志忽略大小写 - 全局匹配:添加
g标志匹配所有结果 - 实际使用时需考虑边界情况和异常输入
- 建议在目标环境中充分测试后再使用