1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > JS 身份证号 姓名 正则表达式验证

JS 身份证号 姓名 正则表达式验证

时间:2020-07-28 03:06:42

相关推荐

JS 身份证号 姓名 正则表达式验证

因项目需要使用身份证号信息补充资料

故新增了此需求

当然呢 还是需要验证一下子的 毕竟咱还是个正经的前端垃圾佬;

既然上代码 咱就得提供一下这个正则表达式了

是这么个回事;

示例代码直接Copy

姓名:使用方法

var username = /^[\u4E00-\u9FA5\uf900-\ufa2d·s]{1,10}$/;let name = "audhasiud***";let isTrue = username.test(name)//判断isTrue false无效 true有效

身份证号码:使用方法

//身份证号校验调用示例let idcode = '41212*******';var isCardNo = idCardNoUtil.checkIdCardNo(idcode);if(!isCardNo ){//不合法}

/*身份证号合法性校验-省,直辖市代码表 [provinceAndCitys]每位加权因子 [powers]第十八位校验码 [parityBit]性别 [genders]校验地址码 [checkAddressCode]校验日期码 [checkBirthDayCode]计算校检码 [checkParityBit]验证校检码 [checkParityBit]校验15位或18位的身份证号码 [checkIdCardNo]*/var idCardNoUtil = {provinceAndCitys: {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: "国外"},powers: ["7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"],parityBit: ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"],genders: { male: "男", female: "女" },checkAddressCode: function(addressCode) {var check = /^[1-9]\d{5}$/.test(addressCode);if (!check) return false;if (idCardNoUtil.provinceAndCitys[parseInt(addressCode.substring(0, 2))]) {return true;} else {return false;}},checkBirthDayCode: function(birDayCode) {var check = /^[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))$/.test(birDayCode);if (!check) return false;var yyyy = parseInt(birDayCode.substring(0, 4), 10);var mm = parseInt(birDayCode.substring(4, 6), 10);var dd = parseInt(birDayCode.substring(6), 10);var xdata = new Date(yyyy, mm - 1, dd);if (xdata > new Date()) {return false; //生日不能大于当前日期} else if ((xdata.getFullYear() == yyyy) && (xdata.getMonth() == mm - 1) && (xdata.getDate() == dd)) {return true;} else {return false;}},getParityBit: function(idCardNo) {var id17 = idCardNo.substring(0, 17);/*加权 */var power = 0;for (var i = 0; i < 17; i++) {power += parseInt(id17.charAt(i), 10) * parseInt(idCardNoUtil.powers[i]);}/*取模*/var mod = power % 11;return idCardNoUtil.parityBit[mod];},checkParityBit: function(idCardNo) {var parityBit = idCardNo.charAt(17).toUpperCase();if (idCardNoUtil.getParityBit(idCardNo) == parityBit) {return true;} else {return false;}},checkIdCardNo: function(idCardNo) {//15位和18位身份证号码的基本校验var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo);if (!check) return false;//判断长度为15位或18位if (idCardNo.length == 15) {return idCardNoUtil.check15IdCardNo(idCardNo);} else if (idCardNo.length == 18) {return idCardNoUtil.check18IdCardNo(idCardNo);} else {return false;}},//校验15位的身份证号码check15IdCardNo: function(idCardNo) {//15位身份证号码的基本校验var check = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo);if (!check) return false;//校验地址码var addressCode = idCardNo.substring(0, 6);check = idCardNoUtil.checkAddressCode(addressCode);if (!check) return false;var birDayCode = '19' + idCardNo.substring(6, 12);//校验日期码return idCardNoUtil.checkBirthDayCode(birDayCode);},//校验18位的身份证号码check18IdCardNo: function(idCardNo) {//18位身份证号码的基本格式校验var check = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo);if (!check) return false;//校验地址码var addressCode = idCardNo.substring(0, 6);check = idCardNoUtil.checkAddressCode(addressCode);if (!check) return false;//校验日期码var birDayCode = idCardNo.substring(6, 14);check = idCardNoUtil.checkBirthDayCode(birDayCode);if (!check) return false;//验证校检码return idCardNoUtil.checkParityBit(idCardNo);},formateDateCN: function(day) {var yyyy = day.substring(0, 4);var mm = day.substring(4, 6);var dd = day.substring(6);return yyyy + '-' + mm + '-' + dd;},//获取信息getIdCardInfo: function(idCardNo) {var idCardInfo = {gender: "", //性别birthday: "" // 出生日期(yyyy-mm-dd)};if (idCardNo.length == 15) {var aday = '19' + idCardNo.substring(6, 12);idCardInfo.birthday = idCardNoUtil.formateDateCN(aday);if (parseInt(idCardNo.charAt(14)) % 2 == 0) {idCardInfo.gender = idCardNoUtil.genders.female;} else {idCardInfo.gender = idCardNoUtil.genders.male;}} else if (idCardNo.length == 18) {var aday = idCardNo.substring(6, 14);idCardInfo.birthday = idCardNoUtil.formateDateCN(aday);if (parseInt(idCardNo.charAt(16)) % 2 == 0) {idCardInfo.gender = idCardNoUtil.genders.female;} else {idCardInfo.gender = idCardNoUtil.genders.male;}}return idCardInfo;},/*18位转15位*/getId15: function(idCardNo) {if (idCardNo.length == 15) {return idCardNo;} else if (idCardNo.length == 18) {return idCardNo.substring(0, 6) + idCardNo.substring(8, 17);} else {return null;}},/*15位转18位*/getId18: function(idCardNo) {if (idCardNo.length == 15) {var id17 = idCardNo.substring(0, 6) + '19' + idCardNo.substring(6);var parityBit = idCardNoUtil.getParityBit(id17);return id17 + parityBit;} else if (idCardNo.length == 18) {return idCardNo;} else {return null;}}};

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。