常用正則表達(dá)式
總結(jié)了一些平時(shí)工作中常用的正則表達(dá)式胰默,并簡(jiǎn)單地封裝成了validate.js
萍悴。
- 是否是正整數(shù)
- 是否是正數(shù)(可以是正整數(shù)陪白,也可以是正浮點(diǎn)數(shù))
- 驗(yàn)證手機(jī)號(hào)格式是否正確
- 驗(yàn)證電子郵箱格式是否正確
- 驗(yàn)證URL地址格式是否正確
- 驗(yàn)證身份證號(hào)格式是否正確
- 判斷是否為空
/**
* 是否是正整數(shù)
* @param {*} value 待驗(yàn)證的數(shù)值
* @returns 驗(yàn)證結(jié)果
*/
export function isPositiveInteger(value) {
const reg = /^\d+$/
return reg.test(value)
}
/**
* 是否是正數(shù)进副,可以是整數(shù)距芬,也可以是浮點(diǎn)數(shù)
* @param {*} value 待驗(yàn)證的數(shù)值
* @returns 驗(yàn)證結(jié)果
*/
export function isPositiveNumber(value) {
const reg = /^\d*\.?\d+$/
return reg.test(value)
}
/**
* 驗(yàn)證手機(jī)號(hào)格式是否正確(寬松)
* @param {*} value 待驗(yàn)證的手機(jī)號(hào)
* @returns 驗(yàn)證結(jié)果
*/
export function validMobile(mobile) {
const reg = /^1[0-9]{10}$/
return reg.test(mobile)
}
/**
* 驗(yàn)證電子郵箱格式是否正確
* @param {*} value 待驗(yàn)證的電子郵箱
* @returns 驗(yàn)證結(jié)果
*/
export function validEmail(email) {
const reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
return reg.test(email)
}
/**
* 驗(yàn)證URL地址格式是否正確
* @param {*} value 待驗(yàn)證的URL地址
* @returns 驗(yàn)證結(jié)果
*/
export function validURL(s) {
const reg = /^http[s]?:\/\/.*/
return reg.test(s)
}
/**
* 驗(yàn)證身份證號(hào)格式是否正確
* @param {*} value 待驗(yàn)證的身份證號(hào)
* @returns 驗(yàn)證結(jié)果
*/
export function validIdNo() {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
return reg.test(s)
}
/**
* 判斷是否為空
* @param {*} value 待驗(yàn)證內(nèi)容
* @returns 驗(yàn)證結(jié)果
*/
export function isNull(val) {
if (typeof val === 'boolean') {
return false
}
if (typeof val === 'number') {
return false
}
if (val instanceof Array) {
if (val.length === 0) return true
} else if (val instanceof Object) {
if (JSON.stringify(val) === '{}') return true
} else {
if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '') return true
return false
}
return false
}
后記
正整數(shù)相關(guān)正則表達(dá)式
//正整數(shù)正則
var posPattern = /^\d+$/; //負(fù)整數(shù)正則
var negPattern = /^-\d+$/; //整數(shù)正則
var intPattern = /^-?\d+$/; //輸出 true console.log(posPattern.test("42")); //輸出 true
console.log(negPattern.test("-42")); //輸出 true
console.log(intPattern.test("-42"));
數(shù)值相關(guān)正則表達(dá)式
//可以是整數(shù)也可以是浮點(diǎn)數(shù)
//正數(shù)正則
var posPattern = /^\d*\.?\d+$/;
//負(fù)數(shù)正則
var negPattern = /^-\d*\.?\d+$/;
//數(shù)字正則
var numPattern = /^-?\d*\.?\d+$/;
console.log(posPattern.test("42.2"));
console.log(negPattern.test("-42.2"));
console.log(numPattern.test("-42.2"));
手機(jī)號(hào)
var myreg = /^(13[0-9]{1}|14[5|7|9]{1}|15[0-3|5-9]{1}|166|17[0-3|5-8]{1}|18[0-9]{1}|19[8-9]{1}){1}\d{8}$/;
身份證號(hào)
//身份證號(hào)(18位)正則
var cP = /^[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]$/;
//輸出 true
console.log(cP.test("11010519880605371X"));
URL
//URL正則
var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
//輸出 true
console.log(urlP.test(http://caibaojian.com));
電子郵箱
//Email正則
var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//輸出 true
console.log(ePattern.test(99154507@qq.com));
中文
//包含中文正則
var cnPattern = /[\u4E00-\u9FA5]/;
//輸出 true
console.log(cnPattern.test("董董董"));
其它
整數(shù)或者小數(shù):^[0-9]+\.{0,1}[0-9]{0,2}$
只能輸入數(shù)字:"^[0-9]*$"罩驻。
只能輸入n位的數(shù)字:"^\d{n}$"穗酥。
只能輸入至少n位的數(shù)字:"^\d{n,}$"。
只能輸入m~n位的數(shù)字:惠遏。"^\d{m,n}$"
只能輸入零和非零開頭的數(shù)字:"^(0|[1-9][0-9]*)$"砾跃。
只能輸入有兩位小數(shù)的正實(shí)數(shù):"^[0-9]+(.[0-9]{2})?$"。
只能輸入有1~3位小數(shù)的正實(shí)數(shù):"^[0-9]+(.[0-9]{1,3})?$"爽哎。
只能輸入非零的正整數(shù):"^\+?[1-9][0-9]*$"蜓席。
只能輸入非零的負(fù)整數(shù):"^\-[1-9][]0-9"*$。
只能輸入長(zhǎng)度為3的字符:"^.{3}$"课锌。
只能輸入由26個(gè)英文字母組成的字符串:"^[A-Za-z]+$"厨内。
只能輸入由26個(gè)大寫英文字母組成的字符串:"^[A-Z]+$"。
只能輸入由26個(gè)小寫英文字母組成的字符串:"^[a-z]+$"渺贤。
只能輸入由數(shù)字和26個(gè)英文字母組成的字符串:"^[A-Za-z0-9]+$"雏胃。
只能輸入由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串:"^\w+$"志鞍。
驗(yàn)證用戶密碼:"^[a-zA-Z]\w{5,17}$"正確格式為:以字母開頭瞭亮,長(zhǎng)度在6~18之間,只能包含字符固棚、數(shù)字和下劃線统翩。
驗(yàn)證是否含有^%&'',;=?$\"等字符:"[^%&'',;=?$\x22]+"。
只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"
驗(yàn)證Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"此洲。
驗(yàn)證InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"厂汗。
驗(yàn)證電話號(hào)碼:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正確格式為:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"呜师、"XXX-XXXXXXX"娶桦、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
驗(yàn)證身份證號(hào)(15位或18位數(shù)字):"^\d{15}|\d{18}$"衷畦。
驗(yàn)證一年的12個(gè)月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"栗涂。
驗(yàn)證一個(gè)月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"祈争。整數(shù)或者小數(shù):^[0-9]+\.{0,1}[0-9]{0,2}$
只能輸入數(shù)字:"^[0-9]*$"斤程。
只能輸入n位的數(shù)字:"^\d{n}$"。
只能輸入至少n位的數(shù)字:"^\d{n,}$"铛嘱。
只能輸入m~n位的數(shù)字:暖释。"^\d{m,n}$"
只能輸入零和非零開頭的數(shù)字:"^(0|[1-9][0-9]*)$"。
只能輸入有兩位小數(shù)的正實(shí)數(shù):"^[0-9]+(.[0-9]{2})?$"墨吓。
只能輸入有1~3位小數(shù)的正實(shí)數(shù):"^[0-9]+(.[0-9]{1,3})?$"。
只能輸入非零的正整數(shù):"^\+?[1-9][0-9]*$"纹磺。
只能輸入非零的負(fù)整數(shù):"^\-[1-9][]0-9"*$帖烘。
只能輸入長(zhǎng)度為3的字符:"^.{3}$"。
只能輸入由26個(gè)英文字母組成的字符串:"^[A-Za-z]+$"橄杨。
只能輸入由26個(gè)大寫英文字母組成的字符串:"^[A-Z]+$"秘症。
只能輸入由26個(gè)小寫英文字母組成的字符串:"^[a-z]+$"。
只能輸入由數(shù)字和26個(gè)英文字母組成的字符串:"^[A-Za-z0-9]+$"式矫。
只能輸入由數(shù)字乡摹、26個(gè)英文字母或者下劃線組成的字符串:"^\w+$"。
驗(yàn)證用戶密碼:"^[a-zA-Z]\w{5,17}$"正確格式為:以字母開頭采转,長(zhǎng)度在6~18之間聪廉,只能包含字符、數(shù)字和下劃線故慈。
驗(yàn)證是否含有^%&'',;=?$\"等字符:"[^%&'',;=?$\x22]+"板熊。
只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"
驗(yàn)證Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
驗(yàn)證InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"察绷。
驗(yàn)證電話號(hào)碼:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正確格式為:"XXX-XXXXXXX"干签、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"拆撼、"XXX-XXXXXXXX"容劳、"XXXXXXX"和"XXXXXXXX"。
驗(yàn)證身份證號(hào)(15位或18位數(shù)字):"^\d{15}|\d{18}$"闸度。
驗(yàn)證一年的12個(gè)月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"竭贩。
驗(yàn)證一個(gè)月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"筋岛。