前言
正则表达式对于前端来说是非常熟悉的,尤其是表单验证,本人是做活动开发的,经历过各种信息资料的填写,特意整理收集了若干个常用以及不常用的正则。
我把它们整理成文档,方便大家查阅。文档有正则,但不只正则,还有很多常用的 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.银行卡号
验证银行卡号,10
到 30
位,覆盖对公/私账户, 参考微信支付。
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.微信号
验证 微信
号。6
至 20
位,要求以 字母
开头,允许 字母
,数字
,减号
,下划线
。
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.用户名校验
验证用户名,4
到 16
位,允许 字母
,数字
,下划线
,减号
。
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
写在最后
都看到这里了,感觉对你有帮助的小伙伴请点个赞支持一下,请大家收藏我的在线文档,多多访问。
👉👉 在线文档
👉👉 源码地址
这是我的另外一个开源网站,用来收藏网址的,内置诸多默认网站,感谢小伙伴们前往支持~
👉👉 流莺书签