常用正则
验证相关
正整数
js
/^[0-9]+$/
金额(精确到分)
js
/^(0|([1-9]\d*))(\.\d{1,2})?$/
/(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0){1}$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/
手机号
js
/^1\d{10}$/
/^1[3-9]\d{9}$/
邮箱号
js
/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
QQ号
js
/^[1-9]{1}\d{4,11}$/
链接地址
js
/^(https|http):\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/
身份证号码
js
/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/
IPv4
js
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
16进制颜色
js
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
日期 YYYY-MM-DD
js
/^\d{4}(\-)\d{1,2}\1\d{1,2}$/
日期 YYYY-MM-DD hh:mm:ss
js
/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
小数
js
/^[-\+]?\d+(\.\d+)?$/
微信号
说明:6至20位,以字母开头,字母,数字,减号,下划线
js
/^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/
邮政编号
js
/^\d{6}$/
车牌号
js
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
只含字母的字符串
js
/^[a-zA-Z]+$/
包含中文的字符串
js
/[\u4E00-\u9FA5]/
密码强度
说明:密码中必须包含字母、数字、特称字符,至少8个字符,最多30个字符
js
/(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,30}/
字符串长度n
js
function checkStrLength(n) {
return new RegExp(`^.{${n}}$`)
}
// 例
// 校验长度为3的字符串
const lengthReg = checkStrLength(3)
const str1 = 'hhh'
console.log(lengthReg.test(str1)) // true
文件拓展名
js
function checkFileName (arr) {
arr = arr.map(name => `.${name}`).join('|')
return new RegExp(`(${arr})$`)
}
// 例
const filenameReg = checkFileName(['jpg', 'png', 'txt'])
const filename1 = 'sunshine.jpg'
console.log(filenameReg.test(filename1)) // true
包含中文的字符串
js
/[\u4E00-\u9FA5]/
格式相关
344 格式手机号
- 从左到右
js
/(^\d{3}|\d{4}\B)/g
// 例:
'15512341234'.replace(/(^\d{3}|\d{4}\B)/g, '$1 ')
- 从右到左
js
/\B(?=(?:\d{4})+$)/g
// 例:
'15512341234'.replace(/\B(?=(?:\d{4})+$)/g, ' ')
隐藏手机号中间 4 位
js
/(\d{3})\d{4}(\d{4})/
// 例:
'15512341234'.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
身份证号脱敏
保留前6后4位
js
val.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2')
保留n位小数
js
function checkFloat(n) {
return new RegExp(`^([1-9]+[\d]*(.[0-9]{1,${n}})?)$`)
}
// 例:
// 保留2位小数
const floatReg = checkFloat(2)
const floatNum1 = 1234.5
console.log(floatReg.test(floatNum1)) // true