跳转至

正则表达式模式库文档

概述

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