文章目錄
- 郵箱
- 手機号碼
- 固定電話
- 身份證号碼
- URL的校驗
- 包含中文的字元串
- 正整數
- 保留n位小數
- 價格
- 10-99.99價格
- 金額
- 0-100整數
- 0-10000整數
- 密碼
- 校驗密碼強度
- 校驗日期
- 判斷IE的版本
- 檔案路徑及擴充名校驗
- IPv4的校驗
- 郵政編号的校驗
- QQ号的校驗
- 微信号的校驗
- 車牌号的校驗
- 隻含字母的字元串
- 包含中文的字元串
- 字元串長度n的校驗
- 檔案拓展名的校驗
項目中常用的正則
更新于 2021年10月12日 17:37:07
郵箱
const reg1 = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
const reg2 = [\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?
手機号碼
const reg1 = /^1[34578]{1}\d{9}$/
const reg2 = /^1[34578]\d{9}$|^0\d{9,10}$/
const reg3 = /^0?(13[0-9]|15[012356789]|18[012346789]|14[5678]|17[678]|170[059]|166|19[89])[0-9]{8}$/
固定電話
const reg = /^([0-9]{3,4}-{0,1})?[0-9]{7,8}$/
身份證号碼
const reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
URL的校驗
const reg = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
包含中文的字元串
const reg = ^[\\u4e00-\\u9fa5]{0,}$
正整數
const reg1 = /^[1-9][0-9]*$/
const reg2 = /^(0|\+?[1-9][0-9]*)$/
保留n位小數
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
const floatNum2 = 1234.55
console.log(floatReg.test(floatNum2)) // true
const floatNum3 = 1234.555
console.log(floatReg.test(floatNum3)) // false
價格
const reg = /^(0|[1-9][0-9]*)($|\.[0-9]{1,2}$)/
10-99.99價格
const reg = /^(\d{1,2}(\.\d{1,2})?|99)$/
金額
精确到2位小數
const reg1 = /^[\u4E00-\u9FA5A-Za-z0-9]{1,5}$/
const reg2 = ^[0-9]+(.[0-9]{2})?$
0-100整數
const reg = /^(([0-9]\d?)|100)$/
0-10000整數
const reg = /^(0|[1-9][0-9]{0,3}|10000)$/
密碼
否含有大小寫字母、數字、特殊符号的兩種及以上
const reg = /^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S{8,16}$/
校驗密碼強度
密碼的強度必須包含大小寫字母和數字的組合,不能使用特殊字元,長度在8-10之間
const reg = ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
校驗日期
// `yyyy-mm-dd` 格式的日期校驗
const reg1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/
// `YYYY-MM-DD hh:mm:ss` 格式的日期校驗
const reg2 = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
判斷IE的版本
const reg = ^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$
檔案路徑及擴充名校驗
const reg = ^([a-zA-Z]\\:|\\\\)\\\\([^\\\\]+\\\\)*[^\\/:*?"<>|]+\\.txt(l)?$
IPv4的校驗
const reg = /^(?:(?: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]?)$/
郵政編号的校驗
const reg= /^\d{6}$/
QQ号的校驗
const reg = /^[1-9][0-9]{4,10}$/
微信号的校驗
const reg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/
車牌号的校驗
const reg = /^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川甯瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂學警港澳]{1}$/
隻含字母的字元串
const reg = /^[a-zA-Z]+$/
包含中文的字元串
const reg = /[\u4E00-\u9FA5]/
字元串長度n的校驗
function checkStrLength(n) {
return new RegExp(`^.{${n}}$`)
}
// 校驗長度為3的字元串
const lengthReg = checkStrLength(3)
const str1 = 'hhh'
console.log(lengthReg.test(str1)) // true
const str2 = 'hhhhh'
console.log(lengthReg.test(str2)) // false
檔案拓展名的校驗
function checkFileName (arr) {
arr = arr.map(name => `.${name}`).join('|')
return new RegExp(`(${arr})$`)
}
const filenameReg = checkFileName(['jpg', 'png', 'txt'])
const filename1 = 'test.jpg'
console.log(filenameReg.test(filename1)) // true
const filename2 = 'test.png'
console.log(filenameReg.test(filename2)) // true
const filename3 = 'test.txt'
console.log(filenameReg.test(filename3)) // true
const filename4 = 'test.md'
console.log(filenameReg.test(filename4)) // false