一、校驗數(shù)字的表達式
//'數(shù)值范圍0-100,可保留兩位小數(shù)
reg= /^(?:100|\d{1,2})(?:\.\d{1,2})?$/;
//正數(shù)且保留兩位小數(shù)
reg= /^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/;
//正整數(shù)
reg=/(^[1-9]\d*$)/;
//數(shù)字:
reg=^[0-9]*$
//n位的數(shù)字:
reg=^\d{n}$
//至少n位的數(shù)字:
reg=^\d{n,}$
//m-n位的數(shù)字:
reg=^\d{m,n}$
//零和非零開頭的數(shù)字:
reg=^(0|[1-9][0-9]*)$
//非零開頭的最多帶兩位小數(shù)的數(shù)字:
reg=^([1-9][0-9]*)+(\.[0-9]{1,2})?$
//帶1-2位小數(shù)的正數(shù)或負數(shù):
reg=^(\-)?\d+(\.\d{1,2})$
//正數(shù)膛腐、負數(shù)、和小數(shù):
reg=^(\-|\+)?\d+(\.\d+)?$
//有兩位小數(shù)的正實數(shù):
reg=^[0-9]+(\.[0-9]{2})?$
//有1~3位小數(shù)的正實數(shù):
reg=^[0-9]+(\.[0-9]{1,3})?$
//非零的正整數(shù):
reg=^[1-9]\d*$
reg= ^([1-9][0-9]*){1,3}$
reg= ^\+?[1-9][0-9]*$
//非零的負整數(shù):
reg= ^\-[1-9][]0-9*$
reg= ^-[1-9]\d*$
//非負整數(shù):
reg= ^\d+$
reg= ^[1-9]\d*|0$
//非正整數(shù):
reg= ^-[1-9]\d*|0$
reg= ^((-\d+)|(0+))$
//非負浮點數(shù):
reg= ^\d+(\.\d+)?$
reg= ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
//非正浮點數(shù):
reg= ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
reg= ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
//正浮點數(shù):
reg= ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
reg= ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
//負浮點數(shù):
reg= ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
reg= ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
//浮點數(shù):
reg= ^(-?\d+)(\.\d+)?$
reg= ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
校驗字符的表達式
//漢字:
reg= ^[\u4e00-\u9fa5]{0,}$
//英文和數(shù)字:
reg= ^[A-Za-z0-9]+$reg= ^[A-Za-z0-9]{4,40}$
//長度為3-20的所有字符:
reg= ^.{3,20}$
//由26個英文字母組成的字符串:
reg= ^[A-Za-z]+$
//由26個大寫英文字母組成的字符串:
reg= ^[A-Z]+$
//由26個小寫英文字母組成的字符串:
reg= ^[a-z]+$
//由數(shù)字和26個英文字母組成的字符串:
reg= ^[A-Za-z0-9]+$
//由數(shù)字们镜、26個英文字母或者下劃線組成的字符串:
reg= ^\w+$
reg= ^\w{3,20}$
//中文横朋、英文、數(shù)字包括下劃線:
reg= ^[\u4E00-\u9FA5A-Za-z0-9_]+$
//中文炊甲、英文、數(shù)字但不包括下劃線等符號:
reg= ^[\u4E00-\u9FA5A-Za-z0-9]+$
reg= ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
//中英文 _ - 數(shù)字
/^[\u4e00-\u9fa5-_a-zA-Z0-9]+$/;
//可以輸入含有^%&',;=?$\"等字符:
//reg= [^%&',;=?$\x22]+
//禁止輸入含有~的字符:
reg= [^~\x22]+
三欲芹、特殊需求表達式
//Email地址:
reg= ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
reg= /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,5}$/;
//域名:
reg= [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
//InternetURL:
reg= [a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
//手機號碼:
reg= ^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
//電話號碼("XXX-XXXXXXX"卿啡、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"菱父、"XXX-XXXXXXXX"颈娜、"XXXXXXX"和"XXXXXXXX):
reg= ^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
//國內(nèi)電話號碼(0511-4405222、021-87888822):
reg= ^\d{3}-\d{8}|\d{4}-\d{7}
//電話號碼正則表達式(支持手機號碼浙宜,3-4位區(qū)號官辽,7-8位直播號碼,1-4位分機號):
reg= ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)
//身份證號(15位粟瞬、18位數(shù)字)同仆,最后一位是校驗位,可能為數(shù)字或字符X:
reg= (^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
//帳號是否合法(字母開頭裙品,允許5-16字節(jié)俗批,允許字母數(shù)字下劃線):
reg= ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
//密碼(以字母開頭俗或,長度在6~18之間,只能包含字母扶镀、數(shù)字和下劃線):
reg= ^[a-zA-Z]\w{5,17}$
//強密碼(必須包含大小寫字母和數(shù)字的組合蕴侣,不能使用特殊字符焰轻,長度在 8-10 之間):
reg= ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
//強密碼(必須包含大小寫字母和數(shù)字的組合臭觉,可以使用特殊字符,長度在8-10之間):
reg= ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
//xml文件:
reg= ^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
//中文字符的正則表達式:
reg= [\u4e00-\u9fa5]
//雙字節(jié)字符:
reg= [^\x00-\xff] (包括漢字在內(nèi)辱志,可以用來計算字符串的長度(一個雙字節(jié)字符長度計2蝠筑,ASCII字符計1))
//空白行的正則表達式:
reg= \n\s*\r (可以用來刪除空白行)
//騰訊QQ號:
reg= [1-9][0-9]{4,} (騰訊QQ號從10000開始)
//中國郵政編碼:
reg= [1-9]\d{5}(?!\d) (中國郵政編碼為6位數(shù)字)
//IPv4地址:
reg= ((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}
/**
* @description: 嚴格校驗身份證
*/
export function IdCard(value, callback){
if(!value) return
//校驗所有省份
const province_code = ['11', '12', '13', '14', '15', '21', '22', '23', '31', '32', '33', '34', '35', '36', '37', '41', '42', '43', '44', '45', '46', '50', '51', '52', '53', '54', '61', '62', '63', '64', '65', '71', '81', '82', '91'];;
if (province_code.indexOf(value.substr(0, 2)) == -1) {
callback(new Error('請輸入正確的身份證號碼'));
}
let ahead17_char = value.substr(0, 17),
last_char = value.substr(-1, 1),
factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2],// 前17位的權(quán)重
c = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'], //模11后的對應(yīng)校驗碼
t_res = 0;
for (let i = 0; i < 17; i++) {
t_res += ahead17_char[i] * factor[i];
}
if (last_char != c[t_res % 11]) {
callback(new Error('請輸入正確的身份證號碼'));
}
}
//// 參照菜鳥教程