JS校验身份证号码是否存在及正确性,不仅仅是校验格式是否正确
2017-08-10 00:00
369 查看
function regCardNo() { var regBox = { regWord : /^([\u4e00-\u9fa5]{1,6})$/,//六个汉字以内 regIdCard : /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/ //如果通过该验证,说明身份证格式正确,但准确性还需计算 }; if(regBox.regIdCard.test($("input[name='idNumber']").val())){ if($("input[name='idNumber']").val().length==18){ var idCardWi=new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ); //将前17位加权因子保存在数组里 var idCardY=new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ); //这是除以11后,可能产生的11位余数、验证码,也保存成数组 var idCardWiSum=0; //用来保存前17位各自乖以加权因子后的总和 for(var i=0;i<17;i++){ idCardWiSum+=$("input[name='idNumber']").val().substring(i,i+1)*idCardWi[i]; } var idCardMod=idCardWiSum%11;//计算出校验码所在数组的位置 var idCardLast=$("input[name='idNumber']").val().substring(17);//得到最后一位身份证号码 //如果等于2,则说明校验码是10,身份证号码最后一位应该是X if(idCardMod==2){ if(idCardLast!="X" && idCardLast!="x"){ alert("身份证号码错误!"); return false; } }else{ //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码 if(idCardLast!=idCardY[idCardMod]){ alert("身份证号码错误!"); return false; } } } }else if(!regBox.regIdCard.test($("input[name='idNumber']").val())){ alert("身份证格式不正确!"); return false; }else{ return true; } $("#submit").attr('disabled','disabled').css('background-color','#bbb') }
相关文章推荐
- js正则表达式——验证邮箱格式、邮编、身份证号码、是否为空、下拉框选项、密码、手机号码、电话号码
- 判断手机号码格式、身份证号码格式是否正确
- 常用PHP函数系列四:PHP验证身份证号码格式是否正确(基础班)
- 如何在html的javascript中写函数function()并用正则表达式验证身份证号码与邮箱格式是否正确
- 判断邮箱,手机号码,身份证,用户名,昵称等输入格式是否正确的 正则表达式
- 使用JS 正则 匹配手机号码输入格式是否正确
- 校验出生日期,校验身份证格式,校验会员账户:9开头数字,校验手机号码是否合法,判断字符串中的url是否都是图片格式字符串,通过图片url读取图片并将图片转换成base64编码
- NSString+Check, iOS 判断手机号码格式是否正确
- 多文件上传,使用js对文件进行校验,包括文件单个大小,格式,总的文件大小,文件是否为空等
- 校验身份证号码的有效性【JS】
- JS判断IP地址格式是否正确
- Js正则校验身份证号码
- javascript校验ip格式是否正确
- JS判断身份证号是否正确
- 判断身份证号码是否正确javascript、asp两种验证方法
- javascript或asp实现的判断身份证号码是否正确两种验证方法
- JS验证邮箱格式是否正确的代码
- php校验日期格式是否正确
- C#身份证号码验证是否正确
- 18位身份证校验是否正确