(持续更新--2022/04/15)
tips
本文主要使用pattern.test方法校验
18位身份证号码
| 译解 | 正则 |
|---|
| 6 位地区编码 | [1-9]\d{5} |
| 4 位年份 | [1-9]\d{3} |
| 2 位月份 | 0[1-9]|1[0-2] |
| 2 位日期 | 0[1-9]|[1-2]\d|3[0-1] |
| 4 位校验码 | \d{3}[\dXx] |
const pattern = /^[1-9]\d{5}[1-9]\d{3}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])(\d{3}[\dXx])$/
密码校验-至少包括 2 种字符
密码长度 6-12 位,由数字、小写字符和大写字母组成,但必须至少包括 2 种字符。
| 译解 | 正则 |
|---|
| 数字 | \d |
| 小写字母 | a-z |
| 大写字母 | A-Z |
| 不能全部数字 | ?!^\d{6,12}$ |
| 不能全部小写字母 | ?!^[a-z]{6,12}$ |
| 不能全部大写字母 | ?!^[A-Z]{6,12}$ |
| 6-12 位,由数字、小写字符和大写字母组成 | ^[\da-zA-Z]{6,12}$ |
const pattern = /(?!^\d{6,12}$)(?!^[a-z]{6,12}$)(?!^[A-Z]{6,12}$)^[\da-zA-Z]{6,12}$/
密码校验-全部包括
密码长度 6-12 位,由数字、小写字符和大写字母组成,但全部包括 3 种字符。
| 译解 | 正则 |
|---|
| 含有数字 | (?=.*\d) |
| 含有小写字母 | (?=.*[a-z]) |
| 含有大写字母 | (?=.*[A-Z]) |
| 6-12 位,由数字、小写字符和大写字母组成 | ^[\da-zA-Z]{6,12}$ |
const pattern = /(?=.*\d)(?=.*[a-z])(?=.*[A-Z])^[\da-zA-Z]{6,12}$/
去掉头尾空格(trim方法模拟)
const pattern = /^\s+|\s+$/g
' test '.replace(pattern,'')
手机号
| 译解 | 正则 |
|---|
| 必须数字 1 开头 | ^1 |
| 第二位必须34567 | [34578] |
| 后9位任意数字结尾 | \d{9}$ |
const pattern = /^1[34578]\d{9}$/
16进制颜色
| 译解 | 正则 |
|---|
| #开头 | ^# |
| 情况一:6位字母或数字结尾 | [\da-zA-Z]$ |
| 情况二:3位字母或数字结尾 | [\da-zA-Z]$ |
const pattern = /^#([\da-zA-Z]{6}|[\da-zA-Z]{3})$/
输入框输入字符串,根据空格逗号,将有意义的字符串才分为数组
一般输入单号,向后台传输数组.
const str = 'id1111 id2222 id3333, ,id44444,,,,,id5555'
const pattern = /[\s,,]+/g
console.log(str.split(pattern))
HTML标签
const str = 'title<title>Document</title>id<a/></title>title'
const pattern = /<(.*)>.*?<\/\1>|<.+?\/>/g
console.log(str.match(pattern));
含有中文
const pattern = /[\u4E00-\u9FA5]/
截取正则表达式的flags(克隆正则)
const patten = /\w*$/;
const reg = new RegExp("a", "imgsy");
console.log(reg);
console.log(patten.exec(reg));
const regClone = new RegExp(reg, patten.exec(reg));
console.log(regClone);