麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

jquery插件validation實現(xiàn)驗證身份證號等

2024-05-06 16:21:23
字體:
供稿:網(wǎng)友

這篇文章主要介紹了jquery插件validation實現(xiàn)驗證身份證號、護照、電話號碼、email十分的簡單實用,有需要的小伙伴可以參考下。

先推薦一個基于bootstrap的jQuery validation插件:http://thrilleratplay.github.io/jquery-validation-bootstrap-tooltip/

jQuery validation添加驗證規(guī)則

validata.html

 

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  2. <html xmlns="http://www.w3.org/1999/xhtml"
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
  5. <!-- TemplateBeginEditable name="doctitle" --> 
  6. <title>無標題文檔</title> 
  7. <script src="lib/jquery.js" type="text/javascript"></script> 
  8. <script src="lib/jquery.validate.js" type="text/javascript"></script> 
  9. <script src="lib/card.js" type="text/javascript"></script> 
  10. <script src="lib/validata.js" type="text/javascript"></script> 
  11. <style type="text/css"
  12. em.success{ 
  13. background:url("images/tips_arrow.gif") no-repeat left 0px; 
  14. padding-left:16px; 
  15. margin-left:2px; 
  16. em.error{ 
  17. background:url("images/tips_arrow.gif") no-repeat left -51px; 
  18. display:inline; 
  19. padding-left:10px; 
  20. font-style:normal; 
  21. font-size:11px; 
  22. margin-left:2px; 
  23. font-family:12px/162% Arial, Helvetica, sans-serif; 
  24.  
  25. </style> 
  26.  
  27. </head> 
  28.  
  29. <body> 
  30. <form class="cmsform" id="commentForm" method="get" action=""
  31. <p> 
  32. <label for="cusername">姓名</label><em>*</em> 
  33. <input id="cusername" name="username" size="25" /> 
  34.  
  35. </p> 
  36. <p> 
  37. <label for="cemail">電子郵件</label><em>*</em> 
  38. <input id="cemail" name="email" size="25" /> 
  39.  
  40. </p> 
  41. <p> 
  42. <label for="card">身份證號</label><em>*</em> 
  43. <input id="card" name="card" size="25"/> 
  44.  
  45. </p> 
  46. <p> 
  47. <label for="passport">護照編號</label><em>*</em> 
  48. <input id="passport" name="passport" size="25"/> 
  49.  
  50. </p> 
  51. <p> 
  52. <label for="phone">電話號碼</label><em>*</em> 
  53. <input id="phone" name="phone" size="25" /> 
  54.  
  55. </p> 
  56. </form> 
  57. </body> 
  58. </html> 

validata.js

 

 
  1. $(function(){ 
  2.  
  3. $.validator.setDefaults({ 
  4. submitHandler: function(form) { 
  5. form.submit(); 
  6. }); 
  7. // 字符驗證 
  8. jQuery.validator.addMethod("stringCheck"function(value, element) { 
  9. return this.optional(element) || /^[/u0391-/uFFE5/w]+$/.test(value); 
  10. }, "只能包括中文字、英文字母、數(shù)字和下劃線"); 
  11. // 中文字兩個字節(jié) 
  12. jQuery.validator.addMethod("byteRangeLength"function(value, element, param) { 
  13. var length = value.length; 
  14. for(var i = 0; i < value.length; i++){ 
  15. if(value.charCodeAt(i) > 127){ 
  16. length++; 
  17. return this.optional(element) || ( length >= param[0] && length <= param[1] ); 
  18. }, "請確保輸入的值在3-15個字節(jié)之間(一個中文字算2個字節(jié))"); 
  19.  
  20. // 身份證號碼驗證 
  21. jQuery.validator.addMethod("isIdCardNo"function(value, element) { 
  22. return this.optional(element) || idCardNoUtil.checkIdCardNo(value); 
  23. }, "請正確輸入您的身份證號碼"); 
  24. //護照編號驗證 
  25. jQuery.validator.addMethod("passport"function(value, element) { 
  26. return this.optional(element) || checknumber(value); 
  27. }, "請正確輸入您的護照編號"); 
  28.  
  29. // 手機號碼驗證 
  30. jQuery.validator.addMethod("isMobile"function(value, element) { 
  31. var length = value.length; 
  32. var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+/d{8})$/; 
  33. return this.optional(element) || (length == 11 && mobile.test(value)); 
  34. }, "請正確填寫您的手機號碼"); 
  35.  
  36. // 電話號碼驗證 
  37. jQuery.validator.addMethod("isTel"function(value, element) { 
  38. var tel = /^/d{3,4}-?/d{7,9}$/; //電話號碼格式010-12345678 
  39. return this.optional(element) || (tel.test(value)); 
  40. }, "請正確填寫您的電話號碼"); 
  41.  
  42. // 聯(lián)系電話(手機/電話皆可)驗證 
  43. jQuery.validator.addMethod("isPhone"function(value,element) { 
  44. var length = value.length; 
  45. var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+/d{8})$/; 
  46. var tel = /^/d{3,4}-?/d{7,9}$/; 
  47. return this.optional(element) || (tel.test(value) || mobile.test(value)); 
  48.  
  49. }, "請正確填寫您的聯(lián)系電話"); 
  50.  
  51. // 郵政編碼驗證 
  52. jQuery.validator.addMethod("isZipCode"function(value, element) { 
  53. var tel = /^[0-9]{6}$/; 
  54. return this.optional(element) || (tel.test(value)); 
  55. }, "請正確填寫您的郵政編碼"); 
  56.  
  57. //開始驗證 
  58. $('#commentForm').validate({ 
  59.  
  60. rules: { 
  61. username: { 
  62. required:true
  63. stringCheck:true
  64. byteRangeLength:[3,15] 
  65. }, 
  66. email:{ 
  67. required:true
  68. email:true 
  69. }, 
  70. phone:{ 
  71. required:true
  72. isMobile:true 
  73. }, 
  74. address:{ 
  75. required:true
  76. stringCheck:true
  77. byteRangeLength:[3,100] 
  78. }, 
  79. card:{ 
  80. required:true
  81. isIdCardNo:true 
  82.  
  83. }, 
  84. passport:{ 
  85. required:true
  86. passport:true 
  87.  
  88. }, 
  89.  
  90.  
  91. messages:{ 
  92. username: { 
  93. required: "請?zhí)顚懹脩裘?quot;
  94. stringCheck: "用戶名只能包括中文字、英文字母、數(shù)字和下劃線"
  95. byteRangeLength: "用戶名必須在3-15個字符之間(一個中文字算2個字符)" 
  96. }, 
  97. email:{ 
  98. required: "<font color=red>請輸入一個Email地址</fond>"
  99. email: "請輸入一個有效的Email地址" 
  100. }, 
  101. phone:{ 
  102. required: "請輸入您的聯(lián)系電話"
  103. isPhone: "請輸入一個有效的聯(lián)系電話" 
  104. }, 
  105. address:{ 
  106. required: "請輸入您的聯(lián)系地址"
  107. stringCheck: "請正確輸入您的聯(lián)系地址"
  108. byteRangeLength: "請詳實您的聯(lián)系地址以便于我們聯(lián)系您" 
  109. }, 
  110. card:{ 
  111. required:"請輸入身份證號"
  112. isIdCardNo:"請輸入正確的身份證號" 
  113. }, 
  114. passport:{ 
  115. required:"請輸入護照編號"
  116. passport:"請輸入正確的護照編號" 
  117. }, 
  118.  
  119. focusInvalid: false
  120. onkeyup: false
  121. errorPlacement: function(error, element) { 
  122. error.appendTo( element.parent()); 
  123. }, 
  124. errorElement:"em"
  125. error:function(label){label.text(" ").addClass("error");} 
  126. }); 
  127. }) 

card.js

 

 
  1. var idCardNoUtil = { 
  2.  
  3. provinceAndCitys: {11:"北京",12:"天津",13:"河北",14:"山西",15:"內(nèi)蒙古",21:"遼寧",22:"吉林",23:"黑龍江"
  4. 31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北",43:"湖南",44:"廣東"
  5. 45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"云南",54:"西藏",61:"陜西",62:"甘肅",63:"青海",64:"寧夏"
  6. 65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外"}, 
  7. powers: ["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"], 
  8. parityBit: ["1","0","X","9","8","7","6","5","4","3","2"], 
  9. genders: {male:"男",female:"女"}, 
  10. checkAddressCode: function(addressCode){ 
  11. var check = /^[1-9]/d{5}$/.test(addressCode); 
  12. if(!check) return false
  13. if(idCardNoUtil.provinceAndCitys[parseInt(addressCode.substring(0,2))]){ 
  14. return true
  15. }else
  16. return false
  17. }, 
  18. checkBirthDayCode: function(birDayCode){ 
  19. var check = /^[1-9]/d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))$/.test(birDayCode); 
  20. if(!check) return false
  21. var yyyy = parseInt(birDayCode.substring(0,4),10); 
  22. var mm = parseInt(birDayCode.substring(4,6),10); 
  23. var dd = parseInt(birDayCode.substring(6),10); 
  24. var xdata = new Date(yyyy,mm-1,dd); 
  25. if(xdata > new Date()){ 
  26. return false;//生日不能大于當前日期 
  27. }else if ( ( xdata.getFullYear() == yyyy ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == dd ) ){ 
  28. return true
  29. }else
  30. return false
  31. }, 
  32. getParityBit: function(idCardNo){ 
  33. var id17 = idCardNo.substring(0,17); 
  34.  
  35. var power = 0; 
  36. for(var i=0;i<17;i++){ 
  37. power += parseInt(id17.charAt(i),10) * parseInt(idCardNoUtil.powers[i]); 
  38.  
  39. var mod = power % 11; 
  40. return idCardNoUtil.parityBit[mod]; 
  41. }, 
  42. checkParityBit: function(idCardNo){ 
  43. var parityBit = idCardNo.charAt(17).toUpperCase(); 
  44. if(idCardNoUtil.getParityBit(idCardNo) == parityBit){ 
  45. return true
  46. }else
  47. return false
  48. }, 
  49. checkIdCardNo: function(idCardNo){ 
  50. //15位和18位身份證號碼的基本校驗 
  51. var check = /^/d{15}|(/d{17}(/d|x|X))$/.test(idCardNo); 
  52. if(!check) return false
  53. //判斷長度為15位或18位 
  54. if(idCardNo.length==15){ 
  55. return idCardNoUtil.check15IdCardNo(idCardNo); 
  56. }else if(idCardNo.length==18){ 
  57. return idCardNoUtil.check18IdCardNo(idCardNo); 
  58. }else
  59. return false
  60. }, 
  61.  
  62. //校驗15位的身份證號碼 
  63. check15IdCardNo: function(idCardNo){ 
  64. //15位身份證號碼的基本校驗 
  65. 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); 
  66. if(!check) return false
  67. //校驗地址碼 
  68. var addressCode = idCardNo.substring(0,6); 
  69. check = idCardNoUtil.checkAddressCode(addressCode); 
  70. if(!check) return false
  71. var birDayCode = '19' + idCardNo.substring(6,12); 
  72. //校驗日期碼 
  73. return idCardNoUtil.checkBirthDayCode(birDayCode); 
  74. }, 
  75.  
  76. //校驗18位的身份證號碼 
  77. check18IdCardNo: function(idCardNo){ 
  78. //18位身份證號碼的基本格式校驗 
  79. 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); 
  80. if(!check) return false
  81. //校驗地址碼 
  82. var addressCode = idCardNo.substring(0,6); 
  83. check = idCardNoUtil.checkAddressCode(addressCode); 
  84. if(!check) return false
  85. //校驗日期碼 
  86. var birDayCode = idCardNo.substring(6,14); 
  87. check = idCardNoUtil.checkBirthDayCode(birDayCode); 
  88. if(!check) return false
  89. //驗證校檢碼 
  90. return idCardNoUtil.checkParityBit(idCardNo); 
  91. }, 
  92.  
  93. formateDateCN: function(day){ 
  94. var yyyy =day.substring(0,4); 
  95. var mm = day.substring(4,6); 
  96. var dd = day.substring(6); 
  97. return yyyy + '-' + mm +'-' + dd; 
  98. }, 
  99.  
  100. //獲取信息 
  101. getIdCardInfo: function(idCardNo){ 
  102. var idCardInfo = { 
  103. gender:""//性別 
  104. birthday:"" // 出生日期(yyyy-mm-dd) 
  105. }; 
  106. if(idCardNo.length==15){ 
  107. var aday = '19' + idCardNo.substring(6,12); 
  108. idCardInfo.birthday=idCardNoUtil.formateDateCN(aday); 
  109. if(parseInt(idCardNo.charAt(14))%2==0){ 
  110. idCardInfo.gender=idCardNoUtil.genders.female; 
  111. }else
  112. idCardInfo.gender=idCardNoUtil.genders.male; 
  113. }else if(idCardNo.length==18){ 
  114. var aday = idCardNo.substring(6,14); 
  115. idCardInfo.birthday=idCardNoUtil.formateDateCN(aday); 
  116. if(parseInt(idCardNo.charAt(16))%2==0){ 
  117. idCardInfo.gender=idCardNoUtil.genders.female; 
  118. }else
  119. idCardInfo.gender=idCardNoUtil.genders.male; 
  120.  
  121. return idCardInfo; 
  122. }, 
  123. getId15:function(idCardNo){ 
  124. if(idCardNo.length==15){ 
  125. return idCardNo; 
  126. }else if(idCardNo.length==18){ 
  127. return idCardNo.substring(0,6) + idCardNo.substring(8,17); 
  128. }else
  129. return null
  130. }, 
  131. getId18: function(idCardNo){ 
  132. if(idCardNo.length==15){ 
  133. var id17 = idCardNo.substring(0,6) + '19' + idCardNo.substring(6); 
  134. var parityBit = idCardNoUtil.getParityBit(id17); 
  135. return id17 + parityBit; 
  136. }else if(idCardNo.length==18){ 
  137. return idCardNo; 
  138. }else
  139. return null
  140. }; 
  141. //驗證護照是否正確 
  142. function checknumber(number){ 
  143. var str=number; 
  144. //在JavaScript中,正則表達式只能使用"/"開頭和結(jié)束,不能使用雙引號 
  145. var Expression=/(P/d{7})|(G/d{8})/; 
  146. var objExp=new RegExp(Expression); 
  147. if(objExp.test(str)==true){ 
  148. return true
  149. }else
  150. return false
  151. }; 

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 久久综合久久综合久久 | 黄色免费在线网站 | 日韩色视频在线观看 | 免费在线观看成人av | 成人在线视频一区 | 久久久久国产一区二区三区不卡 | 色戒在线版 | av电影免费在线 | 中文字幕22页 | 欧美日韩在线视频一区 | 91精品免费观看 | 欧美成人精品一区二区三区 | 精品无吗乱吗av国产爱色 | 日韩毛片一区二区三区 | 日本成年免费网站 | 深夜毛片免费看 | 极品国产91在线网站 | 成人毛片免费在线 | 国产一级二级在线播放 | 国产成人综合在线观看 | 精品国产三级a | 自拍亚洲伦理 | 永久av在线免费观看 | 亚洲成人黄色片 | 亚洲精品久久久久久久久久 | 免费在线观看毛片视频 | 91久久久久 | 日韩欧美激情视频 | 久久精品欧美视频 | 国产一级aaa全黄毛片 | 日韩在线播放第一页 | 亚洲第一视频在线 | 久久国产中文字幕 | 国产毛片视频 | 国产精品视频在线观看免费 | 男男羞羞视频网站国产 | 精精国产xxxx视频在线播放7 | 亚洲成人久久精品 | 成人福利视频在线 | 成人在线视频精品 | 免费a观看|