身份证号 js验证 validform
2016-05-03 18:31
309 查看
摘要: javascript 正则 身份证号验证 validform 的datatype
javascript 正则 身份证号验证
javascript 正则 身份证号验证
datatype:{//传入自定义datatype类型,可以是正则,也可以是函数(函数内会传入一个参数); "idvalid":function(gets,obj,curform,regxp){ //参数gets是获取到的表单元素值,obj为当前表单元素,curform为当前验证的表单,regxp为内置的一些正则表达式的引用; var rgp = regxp.idcard; if(rgp.test(gets)){ if(gets.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+=gets.substring(i,i+1)*idCardWi[i]; } var idCardMod=idCardWiSum%11;//计算出校验码所在数组的位置 var idCardLast=gets.substring(17);//得到最后一位身份证号码 //如果等于2,则说明校验码是10,身份证号码最后一位应该是X if(idCardMod==2){ if(idCardLast=="X"||idCardLast=="x"){ return true; }else{ return false; } }else{ //用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码 if(idCardLast==idCardY[idCardMod]){ return true; }else{ return false; } } } if(gets.length==15){ var year = gets.substring(6,8); var month = gets.substring(8,10); var day = gets.substring(10,12); var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day)); // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法 if(temp_date.getYear()!=parseFloat(year)||temp_date.getMonth()!=parseFloat(month)-1||temp_date.getDate()!=parseFloat(day)){ return false; }else{ return true; } } }else{ return false; } } //注意return可以返回true 或 false 或 字符串文字,true表示验证通过,返回字符串表示验证失败,字符串作为错误提示显示,返回false则用errmsg或默认的错误提示; },
相关文章推荐
- JavaScript全局变量和局部变量的使用注意点
- JavaScript将函数赋值给变量的易错点
- javascript进阶(一)— — 已阅文章收藏
- JavaScript二分查找排序算法
- 玩转JavaScript的Web API : 原生js操控显式HTML元素
- js桌面消息提示和title提醒
- 如何用拼接的字符串调用javascript的变量或方法
- JSON.parse()和JSON.stringify()
- JavaScript冒泡排序算法
- THREE.js-几何体(Geometry)
- JavaScript二维数组转置算法
- 第一个three.js程序
- phantomjs#2文件模块
- JSON 代码,解释,转换
- js调用高德API获取所在当前城市
- JS身份证真实性校验(二)
- js上一个下一个左右滚动实现
- js解析json类型字符串的函数
- js编写当天简单日历效果【实现代码】
- js封装Jqery的ready事件