正则表达式模式库文档
概述
PatternType 类提供了一组常用的正则表达式模式,用于验证各种数据类型和格式。这些模式涵盖了从基础数字验证到复杂的业务场景验证(如身份证、手机号等)。
基础数据类型验证
| 模式名称 |
正则表达式 |
描述 |
有效示例 |
integerRegex |
/^-?\d+$/ |
整数(正负) |
123, -456 |
positiveIntegerRegex |
/^[1-9]\d*$/ |
正整数 |
123, 1 |
negativeIntegerRegex |
/^-[1-9]\d*$/ |
负整数 |
-123, -1 |
floatRegex |
/^-?\d+(\.\d+)?$/ |
浮点数 |
3.14, -0.5 |
letter |
/^[a-zA-Z]+$/ |
纯字母 |
abc, XYZ |
chinese |
/^[\u4e00-\u9fa5]+$/ |
纯汉字 |
中文, 测试 |
number |
/^[0-9]*$/ |
数字 |
123, 0 |
用户账号验证
| 模式名称 |
正则表达式 |
描述 |
有效示例 |
username |
/^[a-zA-Z]\w{3,15}$/ |
标准用户名(字母开头,4-16位) |
user123, Admin_1 |
strongUsername |
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,20}$/ |
强用户名(需包含大小写字母和数字) |
User123, passWORD1 |
密码强度验证
| 模式名称 |
正则表达式 |
描述 |
有效示例 |
password |
/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/ |
基础密码(至少8位,字母+数字) |
password123, 1234Abcd |
strongPassword |
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/ |
强密码(大小写字母+数字+特殊字符) |
P@ssw0rd, A1b2C3d$ |
常用业务验证
| 模式名称 |
正则表达式 |
描述 |
有效示例 |
phone |
/^1[3-9]\d{9}$/ |
中国大陆手机号 |
13800138000 |
phoneWithAreaCode |
/^\+?\d{2,3}-?\d{8,11}$/ |
带区号的电话号码 |
+86-13800138000 |
email |
/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ |
电子邮箱 |
user@example.com |
idCard |
/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/ |
中国身份证号 |
11010119900307783X |
bankCard |
/^[1-9]\d{3,30}$/ |
银行卡号 |
6228480402564890018 |
zipCode |
/^[1-9]\d{5}$/ |
中国邮政编码 |
100000 |
ip |
/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/ |
IP地址 |
192.168.1.1 |
url |
/^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/ |
URL地址 |
https://www.example.com/path |
carNumber |
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/ |
中国车牌号 |
京A12345, 粤B123D5 |
time |
/^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/ |
时间格式(HH:mm:ss) |
23:59:59 |
date |
/^(\d{4})-(\d{2})-(\d{2})$/ |
日期格式(YYYY-MM-DD) |
2023-05-20 |
使用示例
JavaScript 中使用
import { PatternType } from './pattern';
// 验证手机号
const isValidPhone = PatternType.phone.test('13800138000'); // true
// 验证邮箱
const isValidEmail = PatternType.email.test('user@example.com'); // true
// 验证密码强度
const isStrongPassword = PatternType.strongPassword.test('P@ssw0rd'); // true