jqueryvalidate自定义验证方法日期验证
validate详解

psw1:{
required:true,
equalTo:"#psw",
},
mail:{
required:true,
email:true
},
tel:{
number:true,
isMobile:true,
});
<input id="firstname" name="firstname" class="required" />
<input id="email" name="email" class="required email" />
<input id="password" name="password" type="password" class="{ required :true, minlength :5}" />
},
psw:{
required:"密码不能为空",
rangelength:jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
},
psw1:{
required:"确认密码不能为空",
如果需要修改错误提示信息:class="{required:true,minlength:5,messages:{required:'请输入内容'}}"
2.2将校验规则写到 js 代码中:
jquery validate动态添加和删除校验规则

jquery validate动态添加和删除校验规则随着jQuery的使用越来越广泛,jquery validate在前端表单校验中也变得越来越重要。
在使用jquery validate时,我们需要为表单的每个元素添加校验规则。
但有时候我们需要动态地添加或删除校验规则。
本文将围绕“jquery validate动态添加和删除校验规则”进行讲解。
1.获取validate对象在开始动态添加或删除校验规则前,我们需要先获取到该表单的validate对象。
可以通过以下代码获取:```javascriptvar validate = $("#form").validate();```其中,#form为表单的id。
2.动态添加校验规则当我们需要动态添加校验规则时,可以使用addMethod方法。
该方法用于添加自定义校验规则。
以下是方法的基本用法:```javascript$.validator.addMethod(name, method, message)```方法的参数说明如下:- name: 校验方法的名称,用于标识该校验方法;- method: 校验方法的处理函数,函数参数为当前元素的value值,函数返回true表示校验通过,false表示校验不通过;- message: 校验不通过时的错误提示信息。
具体可以参考下方代码:```javascript//新建一个校验规则$.validator.addMethod('chinese', function(value, element) {var chineseReg = /^[\u4e00-\u9fa5]+$/;return this.optional(element) || (chineseReg.test(value)); }, '只能输入中文字符!');//动态添加校验规则validate.rules['name'] = {required: true,chinese: true,minlength: 2,maxlength: 20};```以上代码中,我们定义了一个名为“chinese”的校验规则,用于判断输入的值是否为中文字符。
jquery validate和validform验证插件的对比

此文在jquery的验证插件(下文以jquery代替)和validform验证插件之间作如下对比:1、样式2、普通验证:3、自定义验证:4、Ajax验证:一、样式1、Jquery(可自定义提示信息样式,下图摘自官方文档):2、Validform(提供七种内置方案并支持自定义,以下为七种内置的较常用的三种):二、普通验证1、Jquery:Jquery支持两种方式验证:1、直接将规则绑定到元素上。
2、将规则写在初始化js 中1、直接将规则绑定到元素上。
<form class="cmxform" id="form2" method="get" action=""><fieldset><legend>验证一个完整的表单</legend><p><label for="email">Email</label><input id="email" name="email" required type="email"></p><p><label for="agree">喜欢的颜色</label><select id="color" name="color" title="请选择您喜欢的颜色!" required><option></option><option>红色</option><option>蓝色</option><option>黄色</option></select></p><p><label for="phone">电话</label><input id="phone" name="phone" required type="number" rangelength="[2,8]"> </p><p><label for="address">地址</label><input id="address" name="address" required minlength="3"></p><p><label for="avatar">头像</label><input type="file" id="avatar" name="avatar" required></p><p><label for="agree">请同意我们的条款</label><input type="checkbox" class="checkbox" id="agree" title="请同意我们的条款!" name="agree" required></p><p><input class="submit" type="submit" value="提交"/><input class="cancel" type="submit" value="取消"/></p></fieldset></form>2、将规则下载初始化js中$().ready(function() {$("#signupForm").validate({rules: {firstname: "required",email: {required: true,email: true},password: {required: true,minlength: 5},confirm_password: {required: true,minlength: 5,equalTo: "#password"}},messages: {firstname: "请输入姓名",email: {required: "请输入Email地址",email: "请输入正确的email地址"},password: {required: "请输入密码",minlength: jQuery.format("密码不能小于{0}个字符")},confirm_password: {required: "请输入确认密码",minlength: "确认密码不能小于5个字符",equalTo: "两次输入密码不一致不一致"}}});});2、Validform:Validform也支持两种:1、直接将规则绑定到元素上。
js中validate的使用方法

js中validate的使用方法
x
一、什么是 Validate
Validate 是 JavaScript 中一种验证用户输入是否符合要求的一种技术,比如用户输入的字符串是否是一个有效的日期、用户输入的数字是否在指定的范围内等,这些都可以使用 Validate 来实现。
二、Validate 的使用方法
使用Validate的时候,可以通过JavaScript中的 regex 属性(RegExp 对象)来实现。
如:
1. 匹配邮箱地址:
var pattern =
/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/;
2. 匹配手机号码:
var pattern =
/^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9] )|166|198|199|(147))d{8}$/;
3. 匹配固定电话号码:
var pattern = /^0d{2,3}-?d{7,8}$/;
4. 匹配身份证号(15位或18位数字)
var pattern = /^(d{15}$|^d{18}$|^d{17}(d|X|x))$/;
以上就是使用Validate进行验证的一些常见的使用方法,当然,您也可以根据自己的具体需求来定制自己的 Validate 属性,以确保
用户输入的内容符合要求。
jquery.validate.js的Validate表单验证

jquery.validate.js的Validate表单验证validate⼀、 validate的使⽤步骤1. 引⼊jquery.min.js2. 引⼊ jquery.validate.js3. 页⾯加载后对表单进⾏验证 $("#表单id名").validate({})4. 在validate中的rules中编写验证规则(格式如下)字段的name属性:“校验器”(tisps:⼀个输⼊框只有⼀个校验器的时候使⽤)字段的name属性:{校验器:值,校验器:值}(tips:输⼊框需要有多个校验器的时候使⽤)5. 在validate中的messages中编写提⽰信息(tips格式与rules相对应)6. 在validate中的submitHandler中编写验证通过执⾏的内容图⽰如下:案例代码如下<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><script type="text/javascript" src="scripts/common/jquery.min.js"></script><script type="text/javascript" src="scripts/common/jquery.validate.js"></script<script type="text/javascript">$("#zhuce").validate({rules:{regist_username:{required:true/* remote:{type: "post",url: url,data:{userName:function () {return $("regist_username").val();}}}⽤ajax判断数据库中⽤户名是否存在*/},regist_password:{required:true,minlength:6},final_password:{equalTo:"#regist_password"}},messages:{regist_username:{required:"⽤户名不能为空"},regist_password:{required:"密码不能为空",minlength:"密码最⼩的长度为6"},final_password:{equalTo:"两次密码不⼀致"}},submitHandler: function () {//验证通过后进⾏注册register();}})</script></head><body><form id="zhuce"><dl><dt><div class='header'><h3>注 册</h3></div></dt><dt></dt><dt><div class='letter'><label for="regist_username">⽤户名: </label><input type="text" name="regist_username" id="regist_username" tabindex='5'/></div></dt><dt><div class='letter'>昵 称: <input type="text" name="nickname" id="nickname" tabindex='6'/></div></dt><dt><div class='letter'><label for="regist_password"> 密 码: </label><input type="password" name="regist_password" id="regist_password" tabindex='7'/></div></dt><dt><div class='password'><label for="final_password"> 确认密码: </label><input type="password" name="final_password" id="final_password" tabindex='8'/></div></dt><dt><div><input type="submit" name="" id="regist_button" value=' 注 册 ' tabindex='9'/> <input type="button" name="" id="back" value=' 返 回 ' tabindex='10'/></div></dt></dl></form></body></html>12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182默认校验规则序号校验类型取值描述1required true&false必须填写的字段2email“@”&“email”必须输⼊正确格式的电⼦邮件3remote url路径使⽤ajax进⾏验证4date数字正确格式⽇期 tips:ie6有bug5dateISO字符串正确格式的⽇期例如:2018-11-28,2018/11/28 tips:只验证格式,不验证有效性6number true&false合法的数字7digits true&false整数8creditcard true&false合法的信⽤卡号9equalTo JQuery表达式(eg:"#regist_password")输⼊值必须和 #regist_password相同。
validate表单验证

jQuery 表单验证插件——Validation(基础)(2011-04-23 15:10:21)转载▼分类:javascript标签:杂谈jQuery 表单验证插件——ValidationValidation插件式历史悠久的jQuery插件之一,经过了全球各种项目的验证,得到了很多WEB开发者的好评,作为一个表单验证的解决方案,Validation有很多的优点,比如:内置的验证规则,如:必填、数字、E-Mail、URL和信用卡号码等19类内置验证规则可以自定义验证规则:可以很方便地自定义验证规则简单而且强大的验证信息提示:没人了验证信息提示,并提供自定义覆盖默认提示信息功能实时进行验证的功能.:通过blur和keyup时间来触发验证规则此外,还是用ajax实现了服务器端远程验证。
都可以令前台开发变得非常的简单.下载地址:/project/vlidate写法一(推荐直接使用写法三,因为它实现了行为与结构的分离)废话少说,代码解释:<script src="../../scripts/jquery-1.3.1.js" type="text/javascript"></script><script src="lib/jquery.validate.js" type="text/javascript"></script><script type="text/javascript">$(document).ready(function(){$("#commentForm").validate();});</script><form class="cmxform" id="commentForm" method="get" action=""><fieldset><legend>一个简单的验证带验证提示的评论例子</legend><p><label for="cusername">姓名</label><em>*</em><input id="cusername" name="username" size="25" class="required" minlength ="2" /></p><p><label for="cemail">电子邮件</label><em>*</em><input id="cemail" name="email" size="25" class="required email" /></p><p><label for="curl">网址</label><em> </em><input id="curl" name="url" size="25" class="url" value="" /></p><p><label for="ccomment">你的评论</label><em>*</em><textarea id="ccomment" name="comment" cols="22" class="required"></texta rea></p><p><input class="submit" type="submit" value="提交"/></p></fieldset></form>验证效果:上面绿色标出的部分是需要注意的部分,也是validation执行验证的部分。
JqueryValidate相关参数及常用的自定义验证规则
JqueryValidate相关参数及常⽤的⾃定义验证规则⼀、官⽹地址:⼆、默认校验规则1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17(1) required:true必输字段(2) remote:"remote-valid.jsp"使⽤ajax⽅法调⽤remote-valid.jsp验证输⼊值(3) email:true必须输⼊正确格式的电⼦邮件(4) url:true必须输⼊正确格式的⽹址(5) date:true必须输⼊正确格式的⽇期,⽇期校验ie6出错,慎⽤(6) dateISO:true必须输⼊正确格式的⽇期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性(7) number:true必须输⼊合法的数字(负数,⼩数)(8) digits:true必须输⼊整数(9) creditcard:true必须输⼊合法的信⽤卡号(10) equalTo:"#password"输⼊值必须和#password相同(11) accept: 输⼊拥有合法后缀名的字符串(上传⽂件的后缀)(12) maxlength:5 输⼊长度最多是5的字符串(汉字算⼀个字符)(13) minlength:10 输⼊长度最⼩是10的字符串(汉字算⼀个字符)(14) rangelength:[5,10] 输⼊长度必须介于 5 和 10 之间的字符串")(汉字算⼀个字符)(15) range:[5,10] 输⼊值必须介于 5 和 10 之间(16) max:5 输⼊值不能⼤于5(17) min:10 输⼊值不能⼩于10三、默认的提⽰123 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21messages: {required: "This field is required.",remote: "Please fix this field.",email: "Please enter a valid email address.",url: "Please enter a valid URL.",date: "Please enter a valid date.",dateISO: "Please enter a valid date (ISO).",dateDE: "Bitte geben Sie ein g眉ltiges Datum ein.",number: "Please enter a valid number.",numberDE: "Bitte geben Sie eine Nummer ein.",digits: "Please enter only digits",creditcard: "Please enter a valid credit card number.",equalTo: "Please enter the same value again.",accept: "Please enter a value with a valid extension.",maxlength: $.validator.format("Please enter no more than {0} characters."),minlength: $.validator.format("Please enter at least {0} characters."),rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), range: $.validator.format("Please enter a value between {0} and {1}."),max: $.validator.format("Please enter a value less than or equal to {0}."),min: $.validator.format("Please enter a value greater than or equal to {0}.")},⽰例:$("#fm").validate({rules:{loginpwd:{required:true,minlength:6,maxlength:12,regex:"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$"},loginpwd2:{required:true,equalTo: "#loginpwd",regex:"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$"}},messages:{loginpwd:{required: "请输⼊密码",minlength: "密码长度不能⼩于 6 个字母",regex:"密码必须包含⼤⼩写字母和数字的组合,不能使⽤特殊字符,长度在8-10之间" },loginpwd2:{required: "请输⼊密码",minlength: "密码长度不能⼩于 6 个字母",equalTo: "两次密码输⼊不⼀致",regex:"密码必须包含⼤⼩写字母和数字的组合,不能使⽤特殊字符,长度在8-10之间" } }});四、Jquery Validate ⾃定义验证规则addMethod(name,method,message)⽅法参数 name 是添加的⽅法的名字。
jQuery_validation验证框架使用方法
jQuery validation验证框架jQuery验证框架(一)可选项(jQuery validation)15人收藏此文章,收藏此文章发表于8个月前, 已有3152次阅读共0个评论15人收藏此文章jQuery验证框架Html代码1.<script type="text/javascript" src=js/jquery-1.3.2.min.js></script>2.<script type="text/javascript" src=js/jquery.validate.pack.js></script>3.<script type="text/javascript">4. $(document).ready(function(){5. $("#textForm").validate();6. });7.</script>8.<form class="cmxform" id="commentForm" method="get" action="">9. Name<input id="cname" name="name" size="25" class="required" minlength="2" />10. <input class="submit" type="submit" value="Submit"/>11.</form>此文谨以以上js片段开始介绍jQuery Validation。
jquery.validate动态更改校验规则
jquery.validate动态更改校验规则有时候表单中有多个字段是相互关联的,以下遇到的就是证件类型和证件号码的关联,在下拉框中选择不同的证件类型,证件号码的值的格式都是不同的,这就需要动态的改变校验规则。
点击(此处)折叠或打开1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd">2. <html>3. <head>4. <meta http-equiv="Content-Type"content="text/html; charset=UTF-8">5. <script src="jquery-1.7.2.js"type="text/javascript"></script>6. <script src="jquery.validate.js"type="text/javascript"></script>7. <script src="validate.addmethod.js"type="text/javascript"></script>8. <script src="messages_zh.js"type="text/javascript"></script>9. <script type="text/javascript">10.11. //===================放在validate.addmethod.js中=========================12.13. //检查号码是否符合规范,包括长度,类型14. isCardNo = function(card)15. {16. //⾝份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后⼀位是校验位,可能为数字或字符X17. var reg=/(^\d{15}$)|(^\d{17}(\d|X)$)/;18. if(reg.test(card)=== false)19. {20. return false;21. }22. return true;23. };24.25. //取⾝份证前两位,校验省份26. checkProvince = function(card)27. {28. var province = card.substr(0,2);29. if(vcity[province]== undefined)30. {31. return false;32. }33. return true;34. };35.36. //检查⽣⽇是否正确37. checkBirthday = function(card)38. {39. var len = card.length;40. //⾝份证15位时,次序为省(3位)市(3位)年(2位)⽉(2位)⽇(2位)校验位(3位),皆为数字41. if(len =='15')42. {43. var re_fifteen =/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;44. var arr_data = card.match(re_fifteen);45. var year = arr_data[2];46. var month = arr_data[3];47. var day = arr_data[4];48. var birthday = new Date('19'+year+'/'+month+'/'+day);49. return verifyBirthday('19'+year,month,day,birthday);50. }51. //⾝份证18位时,次序为省(3位)市(3位)年(4位)⽉(2位)⽇(2位)校验位(4位),校验位末尾可能为X52. if(len =='18')53. {54. var re_eighteen =/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;55. var arr_data = card.match(re_eighteen);56. var year = arr_data[2];57. var month = arr_data[3];58. var day = arr_data[4];59. var birthday = new Date(year+'/'+month+'/'+day);60. return verifyBirthday(year,month,day,birthday);61. }62. return false;63. };64.65. //校验⽇期66. verifyBirthday = function(year,month,day,birthday)67. {68. var now = new Date();69. var now_year = now.getFullYear();70. //年⽉⽇是否合理71. if(birthday.getFullYear()== year &&(birthday.getMonth()+ 1)== month && birthday.getDate()== day)72. {73. //判断年份的范围(3岁到100岁之间)74. var time = now_year - year;75. if(time >= 3 && time <= 100)76. {77. return true;78. }79. return false;80. }81. return false;82. };83. //校验位的检测84. checkParity = function(card)85. {86. //15位转18位87. card = changeFivteenToEighteen(card);88. var len = card.length;89. if(len =='18')90. {91. var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);92. var arrCh = new Array('1','0','X','9','8','7','6','5','4','3','2');93. var cardTemp = 0,i, valnum;94. for(i= 0;i< 17;i++)95. {96. cardTemp += card.substr(i, 1)* arrInt[i];97. }98. valnum = arrCh[cardTemp % 11];99. if (valnum == card.substr(17, 1))100. {101. return true;102. }103. return false;104. }105. return false;106. };107. //15位转18位⾝份证号108. changeFivteenToEighteen = function(card)109. {110. if(card.length =='15')111. {112. var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);113. var arrCh = new Array('1','0','X','9','8','7','6','5','4','3','2');114. var cardTemp = 0,i;115. card = card.substr(0, 6)+'19'+ card.substr(6, card.length - 6);116. for(i= 0;i< 17;i++)117. {118. cardTemp += card.substr(i, 1)* arrInt[i];119. }120. card += arrCh[cardTemp % 11];121. return card;122. }123. return card;124. };125. isIdCardNo = function(card)126. {127. //是否为空128. if(card ==='')129. {130. return false;131. }132. //校验长度,类型133. if(isCardNo(card)=== false)134. {135. return false;136. }137. //检查省份138. if(checkProvince(card)=== false)139. {140. return false;141. }142. //校验⽣⽇143. if(checkBirthday(card)=== false)144. {145. return false;146. }147. //检验位的检测148. if(checkParity(card)=== false)149. {150. return false;151. }152. return true;153. };154. //⾝份证号码验证155. jQuery.validator.addMethod("isIdCardNo", function(value, element){156. return this.optional(element)|| isIdCardNo(value);157. },"请正确输⼊您的⾝份证号码");158. //护照号格式验证159. jQuery.validator.addMethod("isPassport", function(value,element){160. var passport ="/(P/d{7})|(G/d{8})/";161. return this.optional(element)||(passport.test(value));162. },"请正确填写您的护照号");163. //===================放在validate.addmethod.js中END=========================164. $(document).ready(function(){165. $("#ctc_form").validate({166. ignore: "",//开启hidden验证, 1.9版本后默认关闭167. rules:{168. "qq":{169. required: true,170. //minlength: 2171. stringCheck:true172. }173. }174. });175. $("#papersType").change( function(){176. var type= $("#papersType").find("option:selected").text();177. if(type=="⾝份证"){178. $("#papersCode").rules("remove");179. $("#papersCode").rules("add",{ required: true,isIdCardNo: true, messages: { required: "请正确输⼊您的⾝份证号码"}}); 180. }else if(type=="军官证"){181. $("#papersCode").rules("remove");182. $("#papersCode").rules("add",{ required: true,stringCheck:true,minlength:6,maxlength:8, messages: { required: "请输⼊正确的军官证号"}});183. }else if(type=="护照"){184. $("#papersCode").rules("remove");185. $("#papersCode").rules("add",{ required: true,isPassport:true, messages: { required: "请正确填写您的护照号"}});186. }else if(type=="机动车驾驶证"){187. $("#papersCode").rules("remove");188. $("#papersCode").rules("add",{ required: true,stringCheck:true, messages: { required: "机动车驾驶证是必填"}});189. }else{190. $("#papersCode").rules("remove");191. $("#papersCode").rules("add",{ required: true,stringCheck:true, messages: { required: "必填"}});192. }193. });194. });195. </script>196. <title></title>197. </head>198. <body>199. <div class="m_right">200. <form id="ctc_form"method="post"action="">201. <table width="700"border="0"cellspacing="0"cellpadding="0"align="center"style="border-collapse: collapse;border-spacing: 0; border:0;margin:0px auto;">202. <tr>203. <td width="90"class="m_r_s_con_td"><span class="required_mark">*</span>证件类型</td>204. <td width="275"class="m_r_s_con_text"><label for="select"></label>205. <select name="papersType"id="papersType">206. <option value="0">请选择</option207. <option value="1">⾝份证</option>208. <option value="2">军官证</option>209. <option value="3">护照</option>210. <option value="4">机动车驾驶证</option>211. <option value="5">其他</option>212. </select></td>213. <td class="m_r_s_con_text"></td>214. </tr>215. <tr>216. <td width="90"class="m_r_s_con_td"><span class="required_mark">*</span>证件证号</td>217. <td width="275"class="m_r_s_con_text"> 218. <input name="papersCode"id="papersCode"/>219. </td>220. <td class="m_r_s_con_text"></td>221. </tr>222. <tr>223. <td width="90"class="m_r_s_con_td"><span class="required_mark">*</span>QQ </td>224. <td width="275"class="m_r_s_con_text"> 225. <input name="qq"id="qq"/>226. </td>227. <td class="m_r_s_con_text"></td>228. </tr>229. </table>230. <input type="submit"value="添加"/>231. </form>232. </div>233. </body>234. </html>。
jquery.validate自定义验证方法及validate相关参数
jquery.validate⾃定义验证⽅法及validate相关参数Jquery Validate 相关参数//定义中⽂消息var cnmsg = {required: “必选字段”,remote: “请修正该字段”,email: “请输⼊正确格式的电⼦邮件”,url: “请输⼊合法的⽹址”,date: “请输⼊合法的⽇期”,dateISO: “请输⼊合法的⽇期 (ISO).”,number: “请输⼊合法的数字”,digits: “只能输⼊整数”,creditcard: “请输⼊合法的信⽤卡号”,equalTo: “请再次输⼊相同的值”,accept: “请输⼊拥有合法后缀名的字符串”,maxlength: jQuery.format(“请输⼊⼀个长度最多是 {0} 的字符串”),minlength: jQuery.format(“请输⼊⼀个长度最少是 {0} 的字符串”),rangelength: jQuery.format(“请输⼊⼀个长度介于 {0} 和 {1} 之间的字符串”),range: jQuery.format(“请输⼊⼀个介于 {0} 和 {1} 之间的值”),max: jQuery.format(“请输⼊⼀个最⼤为 {0} 的值”),min: jQuery.format(“请输⼊⼀个最⼩为 {0} 的值”)};jQuery.extend(jQuery.validator.messages, cnmsg);validate ⾃定义验证$(document).ready( function() {/*** ⾝份证号码验证**/function isIdCardNo(num) {var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);var parityBit=new Array("1","0","X","9","8","7","6","5","4","3","2");var varArray = new Array();var intValue;var lngProduct = 0;var intCheckDigit;var intStrLen = num.length;var idNumber = num;// initializeif ((intStrLen != 15) && (intStrLen != 18)) {return false;}// check and set valuefor(i=0;i<intStrLen;i++) {varArray[i] = idNumber.charAt(i);if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {return false;} else if (i < 17) {varArray[i] = varArray[i] * factorArr[i];}}if (intStrLen == 18) {//check datevar date8 = idNumber.substring(6,14);if (isDate8(date8) == false) {return false;}// calculate the sum of the productsfor(i=0;i<17;i++) {lngProduct = lngProduct + varArray[i];}// calculate the check digitintCheckDigit = parityBit[lngProduct % 11];// check last digitif (varArray[17] != intCheckDigit) {return false;}}else{ //length is 15//check datevar date6 = idNumber.substring(6,12);if (isDate6(date6) == false) {return false;}}return true;}/*** 判断是否为“YYYYMM”式的时期**/function isDate6(sDate) {if(!/^[0-9]{6}$/.test(sDate)) {return false;}var year, month, day;year = sDate.substring(0, 4);month = sDate.substring(4, 6);if (year < 1700 || year > 2500) return falseif (month < 1 || month > 12) return falsereturn true}/*** 判断是否为“YYYYMMDD”式的时期**/function isDate8(sDate) {if(!/^[0-9]{8}$/.test(sDate)) {return false;}var year, month, day;year = sDate.substring(0, 4);month = sDate.substring(4, 6);day = sDate.substring(6, 8);var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]if (year < 1700 || year > 2500) return falseif (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29; if (month < 1 || month > 12) return falseif (day < 1 || day > iaMonthDays[month - 1]) return falsereturn true}// ⾝份证号码验证jQuery.validator.addMethod("idcardno", function(value, element) {return this.optional(element) || isIdCardNo(value);}, "请正确输⼊⾝份证号码");//字母数字jQuery.validator.addMethod("alnum", function(value, element) {return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value);}, "只能包括英⽂字母和数字");// 邮政编码验证jQuery.validator.addMethod("zipcode", function(value, element) {var tel = /^[0-9]{6}$/;return this.optional(element) || (tel.test(value));}, "请正确填写邮政编码");// 汉字jQuery.validator.addMethod("chcharacter", function(value, element) {var tel = /^[\u4e00-\u9fa5]+$/;return this.optional(element) || (tel.test(value));}, "请输⼊汉字");// 字符最⼩长度验证(⼀个中⽂字符长度为2)jQuery.validator.addMethod("stringMinLength", 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);}, $.validator.format("长度不能⼩于{0}!"));// 字符最⼤长度验证(⼀个中⽂字符长度为2)jQuery.validator.addMethod("stringMaxLength", 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);}, $.validator.format("长度不能⼤于{0}!"));// 字符验证jQuery.validator.addMethod("string", function(value, element) {return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);}, "不允许包含特殊符号!");// ⼿机号码验证jQuery.validator.addMethod("mobile", function(value, element) {var length = value.length;return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/.test(value));}, "⼿机号码格式错误!");// 电话号码验证jQuery.validator.addMethod("phone", function(value, element) {var tel = /^(\d{3,4}-?)?\d{7,9}$/g;return this.optional(element) || (tel.test(value));}, "电话号码格式错误!");// 邮政编码验证jQuery.validator.addMethod("zipCode", function(value, element) {var tel = /^[0-9]{6}$/;return this.optional(element) || (tel.test(value));}, "邮政编码格式错误!");// 必须以特定字符串开头验证jQuery.validator.addMethod("begin", function(value, element, param) {var begin = new RegExp("^" + param);return this.optional(element) || (begin.test(value));}, $.validator.format("必须以 {0} 开头!"));// 验证两次输⼊值是否不相同jQuery.validator.addMethod("notEqualTo", function(value, element, param) {return value != $(param).val();}, $.validator.format("两次输⼊不能相同!"));// 验证值不允许与特定值等于jQuery.validator.addMethod("notEqual", function(value, element, param) {return value != param;}, $.validator.format("输⼊值不允许为{0}!"));// 验证值必须⼤于特定值(不能等于)jQuery.validator.addMethod("gt", function(value, element, param) {return value > param;}, $.validator.format("输⼊值必须⼤于{0}!"));// 验证值⼩数位数不能超过两位jQuery.validator.addMethod("decimal", function(value, element) {var decimal = /^-?\d+(\.\d{1,2})?$/;return this.optional(element) || (decimal.test(value));jQuery.validate ⽤法2010年04⽉12⽇星期⼀ 14:33名称返回类型描述validate(options) 返回:Validator 验证所选的FORMvalid() 返回:Boolean 检查是否验证通过rules() 返回:Options 返回元素的验证规则rules(add,rules) 返回:Options 增加验证规则rules(remove,rules)jquery.validate是⼀个基于jquery的⾮常优秀的验证框架,我们可以通过它迅速验证⼀些常见的输⼊,并且可以⾃⼰扩充⾃⼰的验证⽅法,⽽且对国际化也有⾮常好的⽀持。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jqueryvalidate自定义验证方法日期验证在jqueryvalidate中,可以使用自定义验证方法来实现日期验证。
具体的实现步骤如下:
1. 首先,在html页面中引入jquery库和jqueryvalidate插件。
确保在引入jqueryvalidate插件之前引入jquery库。
```html
```
2. 接下来,在表单中的日期字段设置一个合适的id属性,例如
`id="dob"`:
```html
<form id="myForm">
<label for="dob">Date of Birth:</label>
<input type="date" id="dob" name="dob" required>
<button type="submit">Submit</button>
</form>
```
3. 然后,在JavaScript代码中定义一个自定义验证方法来验证日期格式。
在这个方法中,可以使用正则表达式来匹配日期的格式,例如
`yyyy-mm-dd`。
如果格式不匹配,则返回`false`,否则返回`true`。
```javascript
$.validator.addMethod("dateformat", function (value, element) var dateRegex = /^(19,20)\d\d-(0\d,1[012])-(0\d,1\d,2[0-9],3[01])$/;
return this.optional(element) , dateRegex.test(value);
}, "Please enter a valid date format (yyyy-mm-dd)");
```
4. 最后,使用validate方法来初始化表单验证,并添加自定义验证方法到`rules`对象中:
```javascript
$(document).ready(function
$('#myForm').validate
rules:
dob:
required: true,
dateformat: true
}
},
messages:
dob:
required: "Date of Birth is required"
}
},
submitHandler: function (form)
//表单验证通过
form.submit(;
}
});
});
```
在上面的代码中,`rules`对象用于指定`dob`字段需要应用自定义验证方法,并且该字段是必填的。
`messages`对象用于指定验证失败时的错误提示信息。
注意:这里也通过`submitHandler`属性设置了一个回调函数,用于在表单验证通过之后执行表单提交操作。
这样就完成了使用jqueryvalidate自定义验证方法进行日期验证的步骤。
当表单提交时,如果日期字段不符合指定的日期格式,将显示相应的错误信息。
如果日期字段符合指定的日期格式,表单将被提交。