js正则表达式校验:手机号、身份证、护照、港澳台通行证、银行卡号等......
最近经常用正则,总结了一些常用正则表达式:
1、手机号
let regs=/^(?:(?:\+|00)86)?1[3-9]\d{9}$/;
if(regs.test(this.mobileNumber)){
console.log('是手机号')
}else{
console.log('不是手机号')
}
1、中国手机号(严谨), 根据工信部2019年最新公布的手机号段
/^((\+|00)86)?1((3[\d])|(4[5,6,7,9])|(5[0-3,5-9])|(6[5-7])|(7[0-8])|(8[\d])|(9[1,8,9]))\d{8}$/
2、中国手机号(宽松), 只要是13,14,15,16,17,18,19开头即可
/^(?:(?:\+|00)86)?1[3-9]\d{9}$/
3、中国手机号(最宽松), 只要是1开头即可
/^((\+|00)86)?1\d{10}$/
2、身份证号
let regs = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; //身份证
3、护照
let reg=/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/; //护照(包括香港和澳门)
4、港澳台通行证、居住证
//港澳居民通行证 H/M + 10位或8位数字
// 样本: H1234567890
let reg3=/^[HMhm]{1}([0-9]{10}|[0-9]{8})$/; //港澳通行证
// 台湾居民来往大陆通行证
// 样本: 12345678 或 1234567890B
//台湾居民通行证 新版8位或18位数字,旧版10位数字 + 英文字母
let reg4=/^\\d{8}|^[a-zA-Z0-9]{10}|^\\d{18}$/ //台湾通行证
//香港居住证-810开头、字母数字结尾 共18位
let reg5= /(^810)([A-Za-z0-9]{15}$)/;
//澳门居住证-820开头、字母数字结尾 共18位
let reg6= /(^820)([A-Za-z0-9]{15}$)/;
//台湾居住证-830开头、字母数字结尾 共18位(至少包含一个数字规则,与820开头规则重叠)
let reg6= /(^820)([A-Za-z0-9]{15}$)/;
5、银行卡号
//银行卡号(覆盖10-30位,对公/私账户)
let reg5=/^[1-9]\d{9,29}$/ //银行卡号
let reg5=/^([1-9]{1})(\d{15}|\d{18})$/ //更精确一点的
6、军官证
// 军官证
// 规则: 军/兵/士/文/职/广/(其余中文) + "字第" + 4到8位字母或数字 + "号"
// 样本: 军字第2001988号, 士字第P011816X号
let reg6 = /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/;
7、户口本
// 户口本
// 规则: 15位数字, 18位数字, 17位数字 + X
// 样本: 441421999707223115
letreg7 = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
8、用户名、中文姓名
//用户名正则,4到16位(字母,数字,下划线,减号)
let reg8= /^[a-zA-Z0-9_-]{4,16}$/;
let reg8= /^([\u4e00-\u9fa5·]{2,16})$/
9、密码验证
强:最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
let reg9=/^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/
中:字母+数字,字母+特殊字符,数字+特殊字符
let reg9=/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&*]+$)[a-zA-Z\d!@#$%^&*]+$/
弱:纯数字,纯字母,纯特殊字符
let reg9=/^(?:\d+|[a-zA-Z]+|[!@#$%^&*]+)$/
10、车牌号(新能源+非新能源)
//车牌号(新能源+非新能源)
let reg10=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/