js常用正则表达式
// 匹配邮箱
let reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$
// (新)匹配手机号
let reg = /^1[0-9]{10}$/
// (旧)匹配手机号
let reg = /^1(3|4|5|7|8)[0-9]{9}$/
// 匹配8-16位数字和字母密码的正则表达式
let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/
//密码匹配(至少数字、字母、特殊符号两组组合)
let reg = /(^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S+$)/
//密码匹配(密码由8位数字、大小写字母和特殊符号组成!)
let reg = /(^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$)/
// 匹配国内电话号码 0510-4305211
let reg = /\d{3}-\d{8}|\d{4}-\d{7}/
// 匹配腾讯QQ号
let reg = /[1-9][0-9]{4,}/
// 匹配ip地址
let reg = /\d+\.\d+\.\d+\.\d+/
// 匹配中文
let reg = /^[\u4e00-\u9fa5]*$/
// 匹配身份证号码
let reg=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
//18位身份证号强校验
function cardid (code) { let list = [] let result = true let msg = '' var city = { 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 (!validatenull(code)) { if (code.length == 18) { if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) { msg = '证件号码格式错误' } else if (!city[code.substr(0, 2)]) { msg = '地址编码错误' } else { // 18位身份证需要验证最后一位校验位 code = code.split('') // ∑(ai×Wi)(mod 11) // 加权因子 var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] // 校验位 var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x'] var sum = 0 var ai = 0 var wi = 0 for (var i = 0; i < 17; i++) { ai = code[i] wi = factor[i] sum += ai * wi } if (parity[sum % 11] != code[17]) { msg = '证件号码校验位错误' } else { result = false } } } else { msg = '证件号码长度不为18位' } } else { msg = '证件号码不能为空' } list.push(result) list.push(msg) return list }
我是摸鱼君,你的【三连】就是摸鱼君创作的最大动力,如果本篇文章有任何错误和建议,欢迎大家留言!
文章持续更新,可以微信搜索 【码农爱摸鱼】关注公众号第一时间阅读。
