一、校验数字的表达式
//'数值范围0-100,可保留两位小数
reg= /^(?:100|\d{1,2})(?:\.\d{1,2})?$/;
//正数且保留两位小数
reg= /^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/;
//正整数
reg=/(^[1-9]\d*$)/;
//数字:
reg=^[0-9]*$
//n位的数字:
reg=^\d{n}$
//至少n位的数字:
reg=^\d{n,}$
//m-n位的数字:
reg=^\d{m,n}$
//零和非零开头的数字:
reg=^(0|[1-9][0-9]*)$
//非零开头的最多带两位小数的数字:
reg=^([1-9][0-9]*)+(\.[0-9]{1,2})?$
//带1-2位小数的正数或负数:
reg=^(\-)?\d+(\.\d{1,2})$
//正数、负数、和小数:
reg=^(\-|\+)?\d+(\.\d+)?$
//有两位小数的正实数:
reg=^[0-9]+(\.[0-9]{2})?$
//有1~3位小数的正实数:
reg=^[0-9]+(\.[0-9]{1,3})?$
//非零的正整数:
reg=^[1-9]\d*$
reg= ^([1-9][0-9]*){1,3}$
reg= ^\+?[1-9][0-9]*$
//非零的负整数:
reg= ^\-[1-9][]0-9*$
reg= ^-[1-9]\d*$
//非负整数:
reg= ^\d+$
reg= ^[1-9]\d*|0$
//非正整数:
reg= ^-[1-9]\d*|0$
reg= ^((-\d+)|(0+))$
//非负浮点数:
reg= ^\d+(\.\d+)?$
reg= ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
//非正浮点数:
reg= ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
reg= ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
//正浮点数:
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]*))$
//负浮点数:
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]*)))$
//浮点数:
reg= ^(-?\d+)(\.\d+)?$
reg= ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
校验字符的表达式
//汉字:
reg= ^[\u4e00-\u9fa5]{0,}$
//英文和数字:
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]+$
//由数字和26个英文字母组成的字符串:
reg= ^[A-Za-z0-9]+$
//由数字、26个英文字母或者下划线组成的字符串:
reg= ^\w+$
reg= ^\w{3,20}$
//中文、英文、数字包括下划线:
reg= ^[\u4E00-\u9FA5A-Za-z0-9_]+$
//中文、英文、数字但不包括下划线等符号:
reg= ^[\u4E00-\u9FA5A-Za-z0-9]+$
reg= ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
//中英文 _ - 数字
/^[\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}$
//国内电话号码(0511-4405222、021-87888822):
reg= ^\d{3}-\d{8}|\d{4}-\d{7}
//电话号码正则表达式(支持手机号码,3-4位区号,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位数字),最后一位是校验位,可能为数字或字符X:
reg= (^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
//帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):
reg= ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
//密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):
reg= ^[a-zA-Z]\w{5,17}$
//强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):
reg= ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
//强密码(必须包含大小写字母和数字的组合,可以使用特殊字符,长度在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]
//双字节字符:
reg= [^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
//空白行的正则表达式:
reg= \n\s*\r (可以用来删除空白行)
//腾讯QQ号:
reg= [1-9][0-9]{4,} (腾讯QQ号从10000开始)
//中国邮政编码:
reg= [1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
//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位的权重
c = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'], //模11后的对应校验码
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('请输入正确的身份证号码'));
}
}
//// 参照菜鸟教程
网友评论