常用正则表达式
一、校验数字的表达式
用途 | 正则表达式 | 示例 | 说明 |
---|---|---|---|
数字 | ^\d+$ | 12345 | 只允许非负整数(0或正整数) |
n位数字 | ^\d{n}$ | 1234 (n=4) | 恰好 n 位数字 |
至少n位数字 | ^\d{n,}$ | 12345 (n=3) | 至少 n 位数字 |
m-n位数字 | ^\d{m,n}$ | 1234 (m=2,n=4) | m 到 n 位数字 |
零和非零开头数字 | ^(0|[1-9]\d*)$ | 0, 123 | 0 或非零开头的整数 |
非零开头最多两位小数 | ^[1-9]\d*(\.\d{1,2})?$ | 12.34 | 正整数或带1-2位小数 |
正负数带1-2位小数 | ^-?\d+(\.\d{1,2})?$ | -12.34, 56.7 | 正负数,1-2位小数 |
正数、负数、小数 | ^[-+]?\d+(\.\d+)?$ | +12.3, -0.5 | 正负整数或小数 |
两位小数正实数 | ^\d+(\.\d{2})?$ | 12, 12.34 | 正整数或两位小数 |
1~3位小数正实数 | ^\d+(\.\d{1,3})?$ | 12.3, 12.345 | 正整数或1-3位小数 |
非零正整数 | ^[1-9]\d*$ | 123 | 不含0的正整数 |
非零负整数 | ^-[1-9]\d*$ | -123 | 不含0的负整数 |
非负整数 | ^\d+$ | 0, 123 | 0或正整数 |
非正整数 | ^(-\d+|0)$ | -123, 0 | 0或负整数 |
非负浮点数 | ^\d+(\.\d+)?$ | 0, 12.3 | 0或正浮点数 |
非正浮点数 | ^(-\d+(\.\d+)?|0+(\.0+)?)$ | -12.3, 0, 0.0 | 0或负浮点数 |
正浮点数 | ^(([1-9]\d*)|0)\.\d+$ | 0.1, 12.3 | 大于0的浮点数 |
负浮点数 | ^-(([1-9]\d*)|0)\.\d+$ | -0.1, -12.3 | 小于0的浮点数 |
浮点数 | ^-?\d+(\.\d+)?$ | -12.3, 0, 45.6 | 正负浮点数 |
校验字符的表达式
用途 | 正则表达式 | 示例 | 说明 |
---|---|---|---|
汉字 | ^[\u4e00-\u9fa5]+$ | 你好世界 | 只允许汉字,长度至少1 |
英文和数字 | ^[A-Za-z0-9]+$ | abc123 | 只允许英文和数字 |
4-40位英文和数字 | ^[A-Za-z0-9]{4,40}$ | abc12345 | 4-40位英文和数字 |
长度为3-20的所有字符 | ^.{3,20}$ | abc, 12345678901234567890 | 任意字符,3-20位 |
26个英文字母 | ^[A-Za-z]+$ | abcXYZ | 只允许大小写英文字母 |
26个大写英文字母 | ^[A-Z]+$ | ABCXYZ | 只允许大写英文字母 |
26个小写英文字母 | ^[a-z]+$ | abcxyz | 只允许小写英文字母 |
数字和26个英文字母 | ^[A-Za-z0-9]+$ | abc123 | 只允许数字和英文字母 |
数字、字母或下划线 | ^\w+$ | abc_123 | 数字、字母或下划线 |
3-20位数字、字母或下划线 | ^\w{3,20}$ | abc_123 | 3-20位数字、字母或下划线 |
中文、英文、数字、下划线 | ^[\u4E00-\u9FA5A-Za-z0-9_]+$ | 你好abc_123 | 允许中英文、数字、下划线 |
中文、英文、数字(不含下划线) | ^[\u4E00-\u9FA5A-Za-z0-9]+$ | 你好abc123 | 允许中英文、数字,不含下划线 |
可输入除%&',;=?$"等字符外的内容 | ^[^%&',;=?$\x22]+$ | abc123!@# | 不含%&',;=?$"等字符 |
禁止输入含有~的字符 | ^[^~]+$ | abc123 | 不含~字符 |
三、特殊需求表达式
用途 | 正则表达式 | 示例 | 说明 |
---|---|---|---|
Email地址 | ^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ | test@mail.com | 常用邮箱格式 |
域名 | [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.? | www.example.com | 支持多级域名 |
Internet URL | ^[a-zA-Z]+://[^\s]+$ | https://abc.com | 常用URL格式 |
手机号码 | ^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$ | 13812345678 | 中国大陆手机号 |
电话号码(区号-号码) | ^(\d{3,4}-)?\d{7,8}$ | 010-12345678 | 区号可选 |
国内电话号码 | \d{3}-\d{8}|\d{4}-\d{7} | 021-12345678 | 常见座机格式 |
支持分机号的电话 | ((\d{11})|((\d{7,8})|(\d{3,4}-\d{7,8})|(\d{3,4}-\d{7,8}-\d{1,4})|(\d{7,8}-\d{1,4})))$ | 010-12345678-123 | 支持分机号 |
身份证号 | (^\d{15}$)|(^\d{18}$)|(^\d{17}[\dXx]$) | 110101199003071234 | 15/18位,末位可为X |
合法账号 | ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ | abc_123 | 字母开头,5-16位 |
密码(字母开头,6-18位) | ^[a-zA-Z]\w{5,17}$ | a12345_ | 字母开头,6-18位 |
强密码(无特殊字符) | ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ | Abc12345 | 8-10位,含大小写字母和数字 |
强密码(可含特殊字符) | ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ | Abc12345! | 8-10位,含大小写字母、数字、特殊字符 |
日期格式 | ^\d{4}-\d{1,2}-\d{1,2}$ | 2023-01-01 | yyyy-mm-dd |
一年12个月 | ^(0?[1-9]|1[0-2])$ | 01, 12 | 01-12或1-12 |
一个月31天 | ^((0?[1-9])|((1|2)[0-9])|30|31)$ | 01, 31 | 01-31或1-31 |
钱的输入(整数) | ^(0|[1-9][0-9]*)$ | 10000 | 非负整数 |
钱的输入(可负数) | ^(0|-?[1-9][0-9]*)$ | -10000 | 允许负数 |
钱的输入(小数) | ^[0-9]+(\.[0-9]{1,2})?$ | 10000.00 | 最多两位小数 |
钱的输入(带千分位) | ^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?$ | 10,000.00 | 千分位支持 |
xml文件 | ^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[xX][mM][lL]$ | test-1.xml | xml文件名 |
中文字符 | [\u4e00-\u9fa5] | 汉 | 单个中文字符 |
双字节字符 | [^\x00-\xff] | 汉字,日文 | 非ASCII字符 |
空白行 | ^\s*$ | (空行) | 匹配空白行 |
HTML标记 | <[^>]+> | <div> | 简单HTML标签 |
首尾空白字符 | ^\s*|\s*$ | abc | 去除首尾空白 |
腾讯QQ号 | [1-9][0-9]{4,} | 10000 | 5位及以上数字 |
中国邮政编码 | [1-9]\d{5}(?!\d) | 100000 | 6位数字 |
IPv4地址 | ((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3} | 192.168.1.1 | IPv4格式 |