Skip to content

常用正则

验证相关

正整数

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

如有转载或 CV 的请标注本站原文地址