阅读 386

【开发必备】快来收藏!涵盖日常开发中所需要的60多个正则验证!!

前言

本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。

正则表达式对于前端来说是非常熟悉的,尤其是表单验证,本人是做活动开发的,经历过各种信息资料的填写,特意整理收集了若干个常用以及不常用的正则。

我把它们整理成文档,方便大家查阅。文档有正则,但不只正则,还有很多常用的 js 方法等待大家发现,希望小伙伴们多多支持~

👉👉 在线文档

👉👉 源码地址

感觉对你有帮助的小伙伴帮忙点个 star,或者常来文档看看,不定期更新更多的 js 技巧。在线文档已接入百度统计,小伙伴进入即可增加访问量,欢迎大家来让我的数据变的更好看一些~。

如发现错误请大家在评论区指正,或者有其他的常用正则也可以在评论区补充,还可以提新的需求~

使用方法

方法一

安装 warbler-js

npm i --save warbler-js
复制代码

然后使用哪个导入哪个即可。

import { integerReg } from 'warbler-js'
const result = integerReg('4')
console.log(result) //=> true
复制代码

方法二

直接复制文档中源码到自己的项目里使用。

参数和返回值

参数

value (String) : 待验证字符串。

返回值

Boolean : 是否通过验证,true 通过验证, false 没有通过验证。

数字类

1.整数(包含0)

验证所有整数,包括 0正整数负整数

const integerReg = (value) => {
  const reg = /^(0|[1-9][0-9]*|-[1-9][0-9]*)$/;
  return reg.test(value);
};

const result1 = integerReg('0')
const result2 = integerReg('-3')
const result3 = integerReg('4')
const result4 = integerReg('1.1')
const result5 = integerReg('一尾流莺')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // false
console.log(result5) // false
复制代码

2.整数(不包含0)

验证非 0 整数,包括 正整数负整数

const noZeroIntegerReg = (value) => {
  const reg = /^([1-9][0-9]*|-[1-9][0-9]*)$/;
  return reg.test(value);
};

const result1 = noZeroIntegerReg('0')
const result2 = noZeroIntegerReg('-3')
const result3 = noZeroIntegerReg('4')
const result4 = noZeroIntegerReg('1.1')
const result5 = noZeroIntegerReg('一尾流莺')

console.log(result1) // false
console.log(result2) // true
console.log(result3) // true
console.log(result4) // false
console.log(result5) // false
复制代码

3.正整数(包含0)

验证 0正整数

const nonPositiveIntegerReg = (value) => {
  const reg = /^([1-9]\d*|[0]{1,1})$/;
  return reg.test(value);
};

const result1 = nonPositiveIntegerReg('0')
const result2 = nonPositiveIntegerReg('-3')
const result3 = nonPositiveIntegerReg('4')
const result4 = nonPositiveIntegerReg('1.1')
const result5 = nonPositiveIntegerReg('一尾流莺')

console.log(result1) // true
console.log(result2) // false
console.log(result3) // true
console.log(result4) // false
console.log(result5) // false
复制代码

4.正整数(不包含0)

验证 正整数

const positiveIntegerReg = (value) => {
  const reg = /^[1-9]\d*$/;
  return reg.test(value);
};

const result1 = positiveIntegerReg('0')
const result2 = positiveIntegerReg('-3')
const result3 = positiveIntegerReg('4')
const result4 = positiveIntegerReg('1.1')
const result5 = positiveIntegerReg('一尾流莺')

console.log(result1) // false
console.log(result2) // false
console.log(result3) // true
console.log(result4) // false
console.log(result5) // false
复制代码

5.负整数(包含0)

验证 0负整数

const zeroNegativeIntegerReg = (value) => {
  const reg = /^(-[1-9]\d*|[0]{1,1})$/;
  return reg.test(value);
};

const result1 = zeroNegativeIntegerReg('0')
const result2 = zeroNegativeIntegerReg('-3')
const result3 = zeroNegativeIntegerReg('4')
const result4 = zeroNegativeIntegerReg('1.1')
const result5 = zeroNegativeIntegerReg('一尾流莺')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // false
console.log(result4) // false
console.log(result5) // false
复制代码

6.负整数(不包含0)

验证 负整数

const negativeIntegerReg = (value) => {
  const reg = /^-[1-9]\d*$/;
  return reg.test(value);
};

const result1 = negativeIntegerReg('0')
const result2 = negativeIntegerReg('-3')
const result3 = negativeIntegerReg('4')
const result4 = negativeIntegerReg('1.1')
const result5 = negativeIntegerReg('一尾流莺')

console.log(result1) // false
console.log(result2) // true
console.log(result3) // false
console.log(result4) // false
console.log(result5) // false
复制代码

7.货币金额,支持负数

验证货币金额,支持 负数千分位分隔符

const currencyReg = (value) => {
  const reg = /^-?\d+(,\d{3})*(\.\d{1,2})?$/;
  return reg.test(value);
};
const result1 = currencyReg('0')
const result2 = currencyReg('-3')
const result3 = currencyReg('3.99')
const result4 = currencyReg('12,345,678.90')
console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // true
复制代码

8.货币金额

验证货币金额,只支持 正数、不支持校验 千分位分隔符

const moneyReg = (value) => {
  const reg = /(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0)$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/;
  return reg.test(value);
};
  const result1 = moneyReg('500')
  const result2 = moneyReg('-3')
  const result3 = moneyReg('3.99')
  const result4 = moneyReg('12,345,678.90')
  console.log(result1) // true
  console.log(result2) // false
  console.log(result3) // true
  console.log(result4) // false
复制代码

9.数字

验证数字,包含 正数负数整数小数0

const numberReg = (value) => {
  const reg = /^(\-|\+)?\d+(\.\d+)?$/;
  return reg.test(value);
};

const result1 = numberReg('0')
const result2 = numberReg('-3.3')
const result3 = numberReg('4.4')
const result4 = numberReg('3')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // true
复制代码

号码类

1.中国手机号(简单)

验证手机号,11 位,只要是 1 开头即可,允许 0086+86 前缀。

const easyTelReg = (value) => {
  const reg = /^(?:(?:\+|00)86)?1\d{10}$/;
  return reg.test(value);
};

const result1 = easyTelReg('008617612340174')
const result2 = easyTelReg('+8617612340174')
const result3 = easyTelReg('17612340174')
const result4 = easyTelReg('176123401745')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // false
复制代码

2.中国手机号(复杂)

验证手机号,11 位,必须是 13,14,15,16,17,18,19 开头,允许 0086+86 前缀。

const complexTelReg = (value) => {
  const reg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/;
  return reg.test(value);
};

const result1 = complexTelReg('008617612340174')
const result2 = complexTelReg('+8617612340174')
const result3 = complexTelReg('19912340174')
const result4 = complexTelReg('12912340174')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // false
复制代码

3.中国手机号(严格)

验证手机号,11 位,必须是工信部 2019 年最新公布的手机号段。

const strictTelReg = (value) => {
  const reg = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/;
  return reg.test(value);
};

const result1 = strictTelReg('008617612340174')
const result2 = strictTelReg('+8617612340174')
const result3 = strictTelReg('19912340174')
const result4 = strictTelReg('12912340174')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // false
复制代码

4.银行卡号

验证银行卡号,1030 位,覆盖对公/私账户, 参考微信支付

const bankReg = (value) => {
  const reg = /^[1-9]\d{9,29}$/;
  return reg.test(value);
};

const result1 = bankReg('6212262502009182455')

console.log(result1) // true
复制代码

5.车牌号(新能源)

验证车牌号,新能源。

const newCarsReg = (value) => {
  const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:((\d{5}[A-HJK])|([A-HJK][A-HJ-NP-Z0-9][0-9]{4}))|[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])$/;
  return reg.test(value);
};

const result1 = newCarsReg('京AD80234')
const result2 = newCarsReg('辽D46234F')

console.log(result1) // true
console.log(result2) // true
复制代码

6.车牌号(非新能源)

验证车牌号,非新能源。

const carsReg = (value) => {
  const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/;
  return reg.test(value);
};

const result1 = carsReg('京A00234')
const result2 = carsReg('黑D46234')

console.log(result1) // true
console.log(result2) // true
复制代码

7.车牌号(全)

验证车牌号,非新能源 + 新能源。

const allCarsReg = (value) => {
  const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/;
  return reg.test(value);
};

const result1 = allCarsReg('京AD80234')
const result2 = allCarsReg('京A00599')

console.log(result1) // true
console.log(result2) // true
复制代码

8.座机

验证国内座机号码。

const landlineReg = (value) => {
  const reg = /^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$/;
  return reg.test(value);
};

const result1 = landlineReg('0936-4211235')
const result2 = landlineReg('89076543')
const result3 = landlineReg('010-12345678-1234')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
复制代码

9.身份证号(一代)

验证一代身份证号,15 位,基本用不到。

const idFirstReg = (value) => {
  const reg = /^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$/;
  return reg.test(value);
};

const result1 = idFirstReg('123456991010193')
const result2 = idFirstReg('1234569910101934')

console.log(result1) // true
console.log(result2) // false
复制代码

10.身份证号(二代)

验证二代身份证号,18 位,最后一位是校验位,可能为 数字 或字符 X

const idSecondReg = (value) => {
  const reg = /^[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]$/;
  return reg.test(value);
};

const result1 = idSecondReg('150404199803095215')
const result2 = idSecondReg('15040419980309521x')

console.log(result1) // true
console.log(result2) // true
复制代码

11.身份证号(一二代)

验证身份证号,支持 一代身份证二代身份证

const idReg = (value) => {
  const reg = /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/;
  return reg.test(value);
};

const result1 = idReg('123456991010193')
const result2 = idReg('15040419980309521x')

console.log(result1) // true
console.log(result2) // true
复制代码

12.身份证号(香港)

验证香港地区身份证号。

const idHongKongReg = (value) => {
  const reg = /^[a-zA-Z]\d{6}\([\dA]\)$/;
  return reg.test(value);
};

const result1 = idHongKongReg('K034169(1)')

console.log(result1) // true
复制代码

13.身份证号(澳门)

验证澳门地区身份证号。

const idMacaoReg = (value) => {
  const reg = /^[1|5|7]\d{6}[(\d)]{3}$/;
  return reg.test(value);
};

const result1 = idMacaoReg('5686611(1)')

console.log(result1) // true
复制代码

14.身份证号(台湾)

验证台湾地区身份证号。

const idTaiwanReg = (value) => {
  const reg = /^[a-zA-Z][0-9]{9}$/;
  return reg.test(value);
};

const result1 = idTaiwanReg('U193683453')

console.log(result1) // true
复制代码

15.护照

验证护照,包含香港、澳门。

const passportReg = (value) => {
  const reg = /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/;
  return reg.test(value);
};

const result1 = passportReg('s28233515')
const result2 = passportReg('MA1234567')

console.log(result1) // true
console.log(result2) // true
复制代码

16.QQ号

验证 QQ 号,5-11 位数字。

const qqReg = (value) => {
  const reg = /^[1-9][0-9]{4,10}$/;
  return reg.test(value);
};

const result1 = qqReg('969800462')
const result2 = qqReg('1741847465')

console.log(result1) // true
console.log(result2) // true
复制代码

17.微信号

验证 微信 号。620 位,要求以 字母 开头,允许 字母数字减号下划线

const wechatReg = (value) => {
  const reg = /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/;
  return reg.test(value);
};

const result1 = wechatReg('duwanyu515')
const result2 = wechatReg('warbler_js')

console.log(result1) // true
console.log(result2) // true
复制代码

18.火车车次

验证火车的车次号码,由 GCDZTSPKXLY1-9 开头。

const trainReg = (value) => {
  const reg = /^[GCDZTSPKXLY1-9]\d{1,4}$/;
  return reg.test(value);
};

const result1 = trainReg('G1234')
const result2 = trainReg('A18')

console.log(result1) // true
console.log(result2) // false
复制代码

19.手机机身码(IMEI)

验证手机机身码(IMEI),16-18 位数字。

const imeiReg = (value) => {
  const reg = /^\d{15,17}$/;
  return reg.test(value);
};

const result1 = imeiReg('12345678998765432')
const result2 = imeiReg('12345678998765432234')

console.log(result1) // true
console.log(result2) // false
复制代码

20.统一社会信用代码(宽松)

验证统一社会信用代码,15位 / 18位 / 20位数字 或者 字母

const codsReg = (value) => {
  const reg = /^(([0-9A-Za-z]{15})|([0-9A-Za-z]{18})|([0-9A-Za-z]{20}))$/;
  return reg.test(value);
};

const result1 = codsReg('9134052155323005XL')
const result2 = codsReg('91330526MA345BR13A')

console.log(result1) // true
console.log(result2) // true
复制代码

21.统一社会信用代码(严格)

验证统一社会信用代码,须符合 《法人和其他组织统一社会信用代码编码规则》

const strictCodsReg = (value) => {
  const reg = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/;
  return reg.test(value);
};

const result1 = strictCodsReg('9134052155323005XL')
const result2 = strictCodsReg('91330526MA345BR13A')

console.log(result1) // true
console.log(result2) // true
复制代码

常用表单类

1.中文名字

验证名字,纯 中文,允许连字符 ·

const chineseNameReg = (value) => {
  const reg = /^(?:[\u4e00-\u9fa5·]{2,16})$/;
  return reg.test(value);
};

const result1 = chineseNameReg('一尾·流莺')
const result2 = chineseNameReg('warbler')

console.log(result1) // true
console.log(result2) // false
复制代码

2.英文名字

验证名字,纯 英文,允许空格。

const englishNameReg = (value) => {
  const reg = /(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)/;
  return reg.test(value);
};

const result1 = englishNameReg('一尾·流莺')
const result2 = englishNameReg('warbler')

console.log(result1) // false
console.log(result2) // true
复制代码

3.邮箱

验证邮箱。

const emailReg = (value) => {
  const reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  return reg.test(value);
};

const result1 = emailReg('1741847465@qq.com')
const result2 = emailReg('http://warbler.duwanyu.com/')

console.log(result1) // true
console.log(result2) // false
复制代码

4.中文

验证纯 中文

const chineseReg = (value) => {
  const reg = /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/;
  return reg.test(value);
};

const result1 = chineseReg('一尾流莺')
const result2 = chineseReg('warbler')

console.log(result1) // true
console.log(result2) // false
复制代码

5.英文

验证纯 英文

const englishReg = (value) => {
  const reg = /^[a-zA-Z]+$/;
  return reg.test(value);
};

const result1 = englishReg('一尾流莺')
const result2 = englishReg('Warbler')

console.log(result1) // false
console.log(result2) // true
复制代码

6.小写英文

验证 小写英文

const lowercaseReg = (value) => {
  const reg = /^[a-z]+$/;
  return reg.test(value);
};

const result1 = lowercaseReg('warbler')
const result2 = lowercaseReg('Warbler')

console.log(result1) // true
console.log(result2) // false
复制代码

7.大写英文

验证 大写英文

const uppercaseReg = (value) => {
  const reg = /^[A-Z]+$/;
  return reg.test(value);
};

const result1 = uppercaseReg('WARBLER')
const result2 = uppercaseReg('Warbler')

console.log(result1) // true
console.log(result2) // false
复制代码

8.数字和字母

验证数字和字母,支持数字字母数字和字母组合

const nlReg = (value) => {
  const reg = /^[A-Za-z0-9]+$/;
  return reg.test(value);
};

const result1 = nlReg('1')
const result2 = nlReg('aa')
const result3 = nlReg('3aa')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
复制代码

9.密码强度校验

验证密码强度,最少 6 位,包括至少 1 个大写字母,1 个小写字母,1 个数字,1 个特殊字符。

const passwordReg = (value) => {
  const reg = /^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/;
  return reg.test(value);
};

const result1 = passwordReg('asd12312321')
const result2 = passwordReg('Hzw!dasd15')

console.log(result1) // false
console.log(result2) // true
复制代码

10.用户名校验

验证用户名,416 位,允许 字母数字下划线减号

const usernameReg = (value) => {
  const reg = /^[a-zA-Z0-9_-]{4,16}$/;
  return reg.test(value);
};

const result1 = usernameReg('warbler_js01')

console.log(result1) // true
复制代码

11.邮政编码

验证中国 邮政编码

const postalReg = (value) => {
  const reg = /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/;
  return reg.test(value);
};

const result1 = postalReg('734500')

console.log(result1) // true
复制代码

12.中文和数字

验证中文和数字,支持中文数字中文和数字的组合

const ncReg = (value) => {
  const reg = /^((?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])|(\d))+$/;
  return reg.test(value);
};

const result1 = ncReg('1')
const result2 = ncReg('韩')
const result3 = ncReg('韩1')
const result4 = ncReg('韩a')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // false
复制代码

13.不能包含字母

验证字符串,不能包含 字母

const noLetterReg = (value) => {
  const reg = /^[^A-Za-z]*$/;
  return reg.test(value);
};

const result1 = noLetterReg('一尾流莺1!@#')
const result2 = noLetterReg('a')

console.log(result1) // true
console.log(result2) // false
复制代码

14.同时含有数字和英文字母

验证字符串,必须同时含有 数字英文字母

const nlBothReg = (value) => {
  const reg = /^(?=.*[a-zA-Z])(?=.*\d).+$/;
  return reg.test(value);
};

const result1 = nlBothReg('1')
const result2 = nlBothReg('aa')
const result3 = nlBothReg('3aa')

console.log(result1) // false
console.log(result2) // false
console.log(result3) // true
复制代码

15.帐号是否合法

验证账号,要求 字母开头,允许 5-16 字节,允许字母数字下划线组合

const accountReg = (value) => {
  const reg = /^[a-zA-Z]\w{4,15}$/;
  return reg.test(value);
};

const result1 = accountReg('hanzhiwei')
const result2 = accountReg('hanzhi_wei01')

console.log(result1) // true
console.log(result2) // true
复制代码

16.考试分数(150分)

验证考试分数,默认 150 分,其他可自行修改。范围 0-150 , 支持小数位出现 0.5 分。

const achievementReg = (value) => {
  const reg = /^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:\.5)?$/;
  return reg.test(value);
};

const result1 = achievementReg('0')
const result2 = achievementReg('140')
const result3 = achievementReg('145.5')
const result4 = achievementReg('151')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // false
复制代码

网络类

1.网址

验证网址,支持 端口号 ,和 ?+参数 以及 #+参数

const urlReg = (value) => {
  const reg = /^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/;
  return reg.test(value);
};

const result1 = urlReg('http://warblerjs.duwanyu.com')
const result2 = urlReg('https://warblerjs.duwanyu.com')
const result3 = urlReg('https://warblerjs.duwanyu.com:3000')
const result4 = urlReg('https://warblerjs.duwanyu.com?name=hzw&age=18')
const result5 = urlReg('https://warblerjs.duwanyu.com/#/name=hzw&age=18')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // true
console.log(result4) // true
console.log(result5) // true
复制代码

2.必须带端口号的网址

验证网址,必须带有端口号,支持IP

const urlWithPortReg = (value) => {
  const reg = /^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/;
  return reg.test(value);
};

const result1 = urlWithPortReg('http://warblerjs.duwanyu.com')
const result2 = urlWithPortReg('http://warblerjs.duwanyu.com:3000')
const result3 = urlWithPortReg('https://warblerjs.duwanyu.com:3000')

console.log(result1) // false
console.log(result2) // true
console.log(result3) // true
复制代码

3.子网掩码

验证子网掩码的十进制数值。

const subnetReg = (value) => {
  const reg = /^(?:\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])){3}$/;
  return reg.test(value);
};

const result1 = subnetReg('255.255.255.0')
const result2 = subnetReg('255.211.0.0')

console.log(result1) // true
console.log(result2) // true
复制代码

4.GUID/UUID

验证 GUID/UUID,即通用唯一识别码。是一个由 4 个连字号 (-)32 个字节长的字符串分隔后生成的字符串,总共 36 个字节长。

const uuidReg = (value) => {
  const reg = /^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$/i;
  return reg.test(value);
};

const result1 = uuidReg('0842F912-3053-24A1-CE07-23610A13C565')
const result2 = uuidReg('30b18fc7-7e3a-451d-a09f-f15b338f91bd')

console.log(result1) // true
console.log(result2) // true
复制代码

5.版本号

验证版本号,格式必须为 X.Y.Z

const editionReg = (value) => {
  const reg = /^\d+(?:\.\d+){2}$/;
  return reg.test(value);
};

const result1 = editionReg('1.0.1')
const result2 = editionReg('13.4')

console.log(result1) // true
console.log(result2) // false
复制代码

6.视频链接地址

验证视频链接地址,视频格式 可按需增删,必须包含 http/https

const videoUrlReg = (value) => {
  const reg = /^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4))$/i;
  return reg.test(value);
};

const result1 = videoUrlReg('http://warbler.duwanyu.com/wc.mp4')
const result2 = videoUrlReg('https://warbler.duwanyu.com/wc.mp4')
const result3 = videoUrlReg('warbler.duwanyu.com/wc.mp4')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // false
复制代码

7.图片链接地址

验证图片链接地址,图片格式 可按需增删,必须包含 http/https

const imgUrlReg = (value) => {
  const reg = /^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i;
  return reg.test(value);
};

const result1 = imgUrlReg('http://warbler.duwanyu.com/wc.png')
const result2 = imgUrlReg('https://warbler.duwanyu.com/wc.png')
const result3 = imgUrlReg('warbler.duwanyu.com/wc.png')

console.log(result1) // true
console.log(result2) // true
console.log(result3) // false
复制代码

8.24小时制时间

验证时间,24 小时制,格式符合 HH:mm:ss

const dateHmsReg = (value) => {
  const reg = /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/;
  return reg.test(value);
};

const result1 = dateHmsReg('09:02:34')
const result2 = dateHmsReg('13:41:25')

console.log(result1) // true
console.log(result2) // true
复制代码

9.12小时制时间

验证时间,12 小时制,格式符合 hh:mm:ss

const hmsReg = (value) => {
  const reg = /^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/;
  return reg.test(value);
};

const result1 = hmsReg('09:02:34')
const result2 = hmsReg('13:41:25')

console.log(result1) // true
console.log(result2) // false
复制代码

10.base64格式

验证 base64 格式。

const baseReg = (value) => {
  const reg = /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i;
  return reg.test(value);
};

const result1 = baseReg('data:image/gif;base64,xxxx==')
const result2 = baseReg('data:image/gif;base63,xxxx==')

console.log(result1) // true
console.log(result2) // false
复制代码

11.mac地址

验证 mac地址

const macReg = (value) => {
  const reg = /^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i;
  return reg.test(value);
};

const result1 = macReg('38:f9:d3:4b:f5:51')
const result2 = macReg('00-0C-18-CA-E4-55')

console.log(result1) // true
console.log(result2) // true
复制代码

12.16进制颜色

验证 16进制颜色

const colorReg = (value) => {
  const reg = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
  return reg.test(value);
};

const result1 = colorReg('#fff')
const result2 = colorReg('#000000')

console.log(result1) // true
console.log(result2) // true
复制代码

13.ip-v4

验证 ip-v4,允许携带端口。

const ipv4Reg = (value) => {
  const reg = /^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/;
  return reg.test(value);
};

const result1 = ipv4Reg('127.16.0.0')
const result2 = ipv4Reg('127.0.0.1:8080')

console.log(result1) // true
console.log(result2) // false
复制代码

14.日期 YYYY-MM-DD

验证日期,符合 YYYY-MM-DD 格式。

const ymdReg = (value) => {
  const reg = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;
  return reg.test(value);
};

const result1 = ymdReg('2021-10-13 17:34:00')
const result2 = ymdReg('2021-10-13')

console.log(result1) // false
console.log(result2) // true
复制代码

15.日期 YYYY-MM-DD hh:mm:ss

验证日期,符合 YYYY-MM-DD hh:mm:ss 格式。

const ymdhmsReg = (value) => {
  const reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
  return reg.test(value);
};

const result1 = ymdhmsReg('2021-10-13 17:34:00')
const result2 = ymdhmsReg('13:41:25')

console.log(result1) // true
console.log(result2) // false
复制代码

写在最后

都看到这里了,感觉对你有帮助的小伙伴请点个赞支持一下,请大家收藏我的在线文档,多多访问。

👉👉 在线文档

👉👉 源码地址

这是我的另外一个开源网站,用来收藏网址的,内置诸多默认网站,感谢小伙伴们前往支持~

👉👉 流莺书签

参考

正则大全

文章分类
前端