您好,欢迎访问一九零五行业门户网

jquery validation验证身份证号,护照,电话号码,email(实例代码)

validata.htm
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <!-- templatebegineditable name="doctitle" --> <title>无标题文档</title> <script src="lib/jquery.js" type="text/javascript"></script> <script src="lib/jquery.validate.js" type="text/javascript"></script> <script src="lib/card.js" type="text/javascript"></script> <script src="lib/validata.js" type="text/javascript"></script> <style type="text/css"> em.success{ background:url("images/tips_arrow.gif") no-repeat left 0px; padding-left:16px; margin-left:2px; } em.error{ background:url("images/tips_arrow.gif") no-repeat left -51px; display:inline; padding-left:10px; font-style:normal; font-size:11px; margin-left:2px; font-family:12px/162% arial, helvetica, sans-serif; } </style> </head> <body> <form class="cmsform" id="commentform" method="get" action=""> <p> <label for="cusername">姓名</label><em>*</em> <input id="cusername" name="username" size="25" /> </p> <p> <label for="cemail">电子邮件</label><em>*</em> <input id="cemail" name="email" size="25" /> </p> <p> <label for="card">身份证号</label><em>*</em> <input id="card" name="card" size="25"/> </p> <p> <label for="passport">护照编号</label><em>*</em> <input id="passport" name="passport" size="25"/> </p> <p> <label for="phone">电话号码</label><em>*</em> <input id="phone" name="phone" size="25" /> </p> </form> </body> </html>
validata.js
$(function(){ $.validator.setdefaults({ submithandler: function(form) { form.submit(); } }); // 字符验证 jquery.validator.addmethod("stringcheck", function(value, element) { return this.optional(element) || /^[\u0391-\uffe5\w]+$/.test(value); }, "只能包括中文字、英文字母、数字和下划线"); // 中文字两个字节 jquery.validator.addmethod("byterangelength", function(value, element, param) { var length = value.length; for(var i = 0; i < value.length; i++){ if(value.charcodeat(i) > 127){ length++; } } return this.optional(element) || ( length >= param[0] && length <= param[1] ); }, "请确保输入的值在3-15个字节之间(一个中文字算2个字节)"); // 身份证号码验证 jquery.validator.addmethod("isidcardno", function(value, element) { return this.optional(element) || idcardnoutil.checkidcardno(value); }, "请正确输入您的身份证号码"); //护照编号验证 jquery.validator.addmethod("passport", function(value, element) { return this.optional(element) || checknumber(value); }, "请正确输入您的护照编号"); // 手机号码验证 jquery.validator.addmethod("ismobile", function(value, element) { var length = value.length; var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/; return this.optional(element) || (length == 11 && mobile.test(value)); }, "请正确填写您的手机号码"); // 电话号码验证 jquery.validator.addmethod("istel", function(value, element) { var tel = /^\d{3,4}-?\d{7,9}$/; //电话号码格式010-12345678 return this.optional(element) || (tel.test(value)); }, "请正确填写您的电话号码"); // 联系电话(手机/电话皆可)验证 jquery.validator.addmethod("isphone", function(value,element) { var length = value.length; var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/; var tel = /^\d{3,4}-?\d{7,9}$/; return this.optional(element) || (tel.test(value) || mobile.test(value)); }, "请正确填写您的联系电话"); // 邮政编码验证 jquery.validator.addmethod("iszipcode", function(value, element) { var tel = /^[0-9]{6}$/; return this.optional(element) || (tel.test(value)); }, "请正确填写您的邮政编码"); //开始验证 $('#commentform').validate({ rules: { username: { required:true, stringcheck:true, byterangelength:[3,15] }, email:{ required:true, email:true }, phone:{ required:true, ismobile:true }, address:{ required:true, stringcheck:true, byterangelength:[3,100] }, card:{ required:true, isidcardno:true }, passport:{ required:true, passport:true } }, messages:{ username: { required: "请填写用户名", stringcheck: "用户名只能包括中文字、英文字母、数字和下划线", byterangelength: "用户名必须在3-15个字符之间(一个中文字算2个字符)" }, email:{ required: "<font color=red>请输入一个email地址</fond>", email: "请输入一个有效的email地址" }, phone:{ required: "请输入您的联系电话", isphone: "请输入一个有效的联系电话" }, address:{ required: "请输入您的联系地址", stringcheck: "请正确输入您的联系地址", byterangelength: "请详实您的联系地址以便于我们联系您" }, card:{ required:"请输入身份证号", isidcardno:"请输入正确的身份证号" }, passport:{ required:"请输入护照编号", passport:"请输入正确的护照编号" } }, focusinvalid: false, onkeyup: false, errorplacement: function(error, element) { error.appendto( element.parent()); }, errorelement:"em", error:function(label){label.text(" ").addclass("error");} }); })
card.js
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; }, 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; } }, 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; } } }; //验证护照是否正确 function checknumber(number){ var str=number; //在javascript中,正则表达式只能使用"/"开头和结束,不能使用双引号 var expression=/(p\d{7})|(g\d{8})/; var objexp=new regexp(expression); if(objexp.test(str)==true){ return true; }else{ return false; } };
更多jquery validation验证身份证号,护照,电话号码,email(实例代码)。
其它类似信息

推荐信息