{"id":7335,"date":"2019-04-13T15:29:16","date_gmt":"2019-04-13T07:29:16","guid":{"rendered":"https:\/\/sdeno.com\/?p=7335"},"modified":"2019-04-13T15:30:51","modified_gmt":"2019-04-13T07:30:51","slug":"js%e6%ad%a3%e5%88%99%e8%ba%ab%e4%bb%bd%e8%af%81%e9%aa%8c%e8%af%81","status":"publish","type":"post","link":"https:\/\/sdeno.com\/?p=7335","title":{"rendered":"js\u6b63\u5219\u8eab\u4efd\u8bc1\u9a8c\u8bc1"},"content":{"rendered":"<p>js \u6b63\u5219 \u9a8c\u8bc1 \u8eab\u4efd\u8bc1 \u6b63\u5219<\/p>\n<p>\u6700\u597d\u7684jQuery\u6b63\u5219\u9a8c\u8bc1\u8eab\u4efd\u8bc1\u4ee3\u7801:<br \/>\n\u6309\u7167\u8eab\u4efd\u8bc1\u7684\u7b97\u6cd5\u5b9a\u5236\u800c\u6210,\u7cbe\u786e\u5ea6\u5b8c\u7f8e\u652f\u630115\u548c18\u4f4d. \u9519\u4e00\u4e2a\u6570\u5b57\u6216\u5b57\u6bcd\u90fd\u901a\u4e0d\u8fc7,\u65e0\u9700\u901a\u8fc7\u6570\u636e\u5904\u7406\u6765\u9a8c\u8bc1<\/p>\n<p>&nbsp;<\/p>\n<p>\u65b9\u6cd5\u4e00\uff1a<\/p>\n<pre>\/\/\u8eab\u4efd\u8bc1\u68c0\u9a8c\r\nvar vcity={ 11:\"\u5317\u4eac\",12:\"\u5929\u6d25\",13:\"\u6cb3\u5317\",14:\"\u5c71\u897f\",15:\"\u5185\u8499\u53e4\",\r\n21:\"\u8fbd\u5b81\",22:\"\u5409\u6797\",23:\"\u9ed1\u9f99\u6c5f\",31:\"\u4e0a\u6d77\",32:\"\u6c5f\u82cf\",\r\n33:\"\u6d59\u6c5f\",34:\"\u5b89\u5fbd\",35:\"\u798f\u5efa\",36:\"\u6c5f\u897f\",37:\"\u5c71\u4e1c\",41:\"\u6cb3\u5357\",\r\n42:\"\u6e56\u5317\",43:\"\u6e56\u5357\",44:\"\u5e7f\u4e1c\",45:\"\u5e7f\u897f\",46:\"\u6d77\u5357\",50:\"\u91cd\u5e86\",\r\n51:\"\u56db\u5ddd\",52:\"\u8d35\u5dde\",53:\"\u4e91\u5357\",54:\"\u897f\u85cf\",61:\"\u9655\u897f\",62:\"\u7518\u8083\",\r\n63:\"\u9752\u6d77\",64:\"\u5b81\u590f\",65:\"\u65b0\u7586\",71:\"\u53f0\u6e7e\",81:\"\u9999\u6e2f\",82:\"\u6fb3\u95e8\",91:\"\u56fd\u5916\"\r\n};\r\n\r\nfunction checkCard(card){\r\n\/\/\u662f\u5426\u4e3a\u7a7a\r\nif(!card||!isCardNo(card)||!checkProvince(card)||!checkBirthday(card)||!checkParity(card)){\r\nZlyJs.divTip(\"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u8eab\u4efd\u8bc1\u53f7\u7801\");\r\njQuery(\".sf_list\").focus();\r\nreturn false;\r\n}\r\nreturn true;\r\n};\r\n\r\n\r\n\/\/\u68c0\u67e5\u53f7\u7801\u662f\u5426\u7b26\u5408\u89c4\u8303\uff0c\u5305\u62ec\u957f\u5ea6\uff0c\u7c7b\u578b\r\nfunction isCardNo(card){\r\n\/\/\u8eab\u4efd\u8bc1\u53f7\u7801\u4e3a15\u4f4d\u6216\u800518\u4f4d\uff0c15\u4f4d\u65f6\u5168\u4e3a\u6570\u5b57\uff0c18\u4f4d\u524d17\u4f4d\u4e3a\u6570\u5b57\uff0c\u6700\u540e\u4e00\u4f4d\u662f\u6821\u9a8c\u4f4d\uff0c\u53ef\u80fd\u4e3a\u6570\u5b57\u6216\u5b57\u7b26X\r\nvar reg = \/(^\\d{15}$)|(^\\d{17}(\\d|X)$)\/;\r\nif(reg.test(card) === false){\r\nreturn false;\r\n}\r\nreturn true;\r\n};\r\n\r\n\/\/\u53d6\u8eab\u4efd\u8bc1\u524d\u4e24\u4f4d,\u6821\u9a8c\u7701\u4efd\r\nfunction checkProvince(card){\r\nvar province = card.substr(0,2);\r\nif(vcity[province] == undefined) {\r\nreturn false;\r\n}\r\nreturn true;\r\n};\r\n\r\n\/\/\u68c0\u67e5\u751f\u65e5\u662f\u5426\u6b63\u786e\r\nfunction checkBirthday(card){\r\nvar len = card.length;\r\n\/\/\u8eab\u4efd\u8bc115\u4f4d\u65f6\uff0c\u6b21\u5e8f\u4e3a\u7701\uff083\u4f4d\uff09\u5e02\uff083\u4f4d\uff09\u5e74\uff082\u4f4d\uff09\u6708\uff082\u4f4d\uff09\u65e5\uff082\u4f4d\uff09\u6821\u9a8c\u4f4d\uff083\u4f4d\uff09\uff0c\u7686\u4e3a\u6570\u5b57\r\nif(len == '15'){\r\nvar re_fifteen = \/^(\\d{6})(\\d{2})(\\d{2})(\\d{2})(\\d{3})$\/;\r\nvar arr_data = card.match(re_fifteen);\r\nvar year = arr_data[2];\r\nvar month = arr_data[3];\r\nvar day = arr_data[4];\r\nvar birthday = new Date('19'+year+'\/'+month+'\/'+day);\r\nreturn verifyBirthday('19'+year,month,day,birthday);\r\n}\r\n\/\/\u8eab\u4efd\u8bc118\u4f4d\u65f6\uff0c\u6b21\u5e8f\u4e3a\u7701\uff083\u4f4d\uff09\u5e02\uff083\u4f4d\uff09\u5e74\uff084\u4f4d\uff09\u6708\uff082\u4f4d\uff09\u65e5\uff082\u4f4d\uff09\u6821\u9a8c\u4f4d\uff084\u4f4d\uff09\uff0c\u6821\u9a8c\u4f4d\u672b\u5c3e\u53ef\u80fd\u4e3aX\r\nif(len == '18'){\r\nvar re_eighteen = \/^(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)$\/;\r\nvar arr_data = card.match(re_eighteen);\r\nvar year = arr_data[2];\r\nvar month = arr_data[3];\r\nvar day = arr_data[4];\r\nvar birthday = new Date(year+'\/'+month+'\/'+day);\r\nreturn verifyBirthday(year,month,day,birthday);\r\n}\r\nreturn false;\r\n};\r\n\r\n\/\/\u6821\u9a8c\u65e5\u671f\r\nfunction verifyBirthday(year,month,day,birthday){\r\nvar now = new Date();\r\nvar now_year = now.getFullYear();\r\n\/\/\u5e74\u6708\u65e5\u662f\u5426\u5408\u7406\r\nif(birthday.getFullYear() == year &amp;&amp; (birthday.getMonth() + 1) == month &amp;&amp; birthday.getDate() == day){\r\n\/\/\u5224\u65ad\u5e74\u4efd\u7684\u8303\u56f4\uff083\u5c81\u5230100\u5c81\u4e4b\u95f4)\r\nvar time = now_year - year;\r\nif(time &gt;= 3 &amp;&amp; time &lt;= 100)\r\n{\r\nreturn true;\r\n}\r\nreturn false;\r\n}\r\nreturn false;\r\n};\r\n\/\/\u6821\u9a8c\u4f4d\u7684\u68c0\u6d4b\r\nfunction checkParity(card){\r\n\/\/15\u4f4d\u8f6c18\u4f4d\r\ncard = changeFivteenToEighteen(card);\r\nvar len = card.length;\r\nif(len == '18'){\r\nvar arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);\r\nvar arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');\r\nvar cardTemp = 0, i, valnum;\r\nfor(i = 0; i &lt; 17; i ++){\r\ncardTemp += card.substr(i, 1) * arrInt[i];\r\n}\r\nvalnum = arrCh[cardTemp % 11];\r\nif(valnum == card.substr(17, 1)){\r\nreturn true;\r\n}\r\nreturn false;\r\n}\r\nreturn false;\r\n};\r\n\/\/15\u4f4d\u8f6c18\u4f4d\u8eab\u4efd\u8bc1\u53f7\r\nfunction changeFivteenToEighteen(card){\r\nif(card.length == '15'){\r\nvar arrInt = new array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);\r\nvar arrCh = new array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');\r\nvar cardTemp = 0, i;\r\ncard = card.substr(0, 6) + '19' + card.substr(6, card.length - 6);\r\nfor(i = 0; i &lt; 17; i ++){\r\ncardTemp += card.substr(i, 1) * arrInt[i];\r\n}\r\ncard += arrCh[cardTemp % 11];\r\nreturn card;\r\n}\r\nreturn card;\r\n};\r\n\r\n\r\n\/\/\u8c03\u7528\r\nif (!checkCard(code)) {\r\n  alert(\"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u8eab\u4efd\u8bc1\u53f7\u7801\");\r\n  return false;\r\n}<\/pre>\n<p><a href=\"https:\/\/blog.csdn.net\/websites\/article\/details\/51480541\" target=\"_blank\" rel=\"noopener\">https:\/\/blog.csdn.net\/websites\/article\/details\/51480541<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u65b9\u6cd5\u4e8c\uff1a<\/p>\n<pre>\/*\r\n\u6839\u636e\u3016\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd\u56fd\u5bb6\u6807\u51c6 GB 11643-1999\u3017\u4e2d\u6709\u5173\u516c\u6c11\u8eab\u4efd\u53f7\u7801\u7684\u89c4\u5b9a\uff0c\u516c\u6c11\u8eab\u4efd\u53f7\u7801\u662f\u7279\u5f81\u7ec4\u5408\u7801\uff0c\u7531\u5341\u4e03\u4f4d\u6570\u5b57\u672c\u4f53\u7801\u548c\u4e00\u4f4d\u6570\u5b57\u6821\u9a8c\u7801\u7ec4\u6210\u3002\u6392\u5217\u987a\u5e8f\u4ece\u5de6\u81f3\u53f3\u4f9d\u6b21\u4e3a\uff1a\u516d\u4f4d\u6570\u5b57\u5730\u5740\u7801\uff0c\u516b\u4f4d\u6570\u5b57\u51fa\u751f\u65e5\u671f\u7801\uff0c\u4e09\u4f4d\u6570\u5b57\u987a\u5e8f\u7801\u548c\u4e00\u4f4d\u6570\u5b57\u6821\u9a8c\u7801\u3002\r\n\u5730\u5740\u7801\u8868\u793a\u7f16\u7801\u5bf9\u8c61\u5e38\u4f4f\u6237\u53e3\u6240\u5728\u53bf(\u5e02\u3001\u65d7\u3001\u533a)\u7684\u884c\u653f\u533a\u5212\u4ee3\u7801\u3002\r\n\u51fa\u751f\u65e5\u671f\u7801\u8868\u793a\u7f16\u7801\u5bf9\u8c61\u51fa\u751f\u7684\u5e74\u3001\u6708\u3001\u65e5\uff0c\u5176\u4e2d\u5e74\u4efd\u7528\u56db\u4f4d\u6570\u5b57\u8868\u793a\uff0c\u5e74\u3001\u6708\u3001\u65e5\u4e4b\u95f4\u4e0d\u7528\u5206\u9694\u7b26\u3002\r\n\u987a\u5e8f\u7801\u8868\u793a\u540c\u4e00\u5730\u5740\u7801\u6240\u6807\u8bc6\u7684\u533a\u57df\u8303\u56f4\u5185\uff0c\u5bf9\u540c\u5e74\u3001\u6708\u3001\u65e5\u51fa\u751f\u7684\u4eba\u5458\u7f16\u5b9a\u7684\u987a\u5e8f\u53f7\u3002\u987a\u5e8f\u7801\u7684\u5947\u6570\u5206\u7ed9\u7537\u6027\uff0c\u5076\u6570\u5206\u7ed9\u5973\u6027\u3002\r\n\u6821\u9a8c\u7801\u662f\u6839\u636e\u524d\u9762\u5341\u4e03\u4f4d\u6570\u5b57\u7801\uff0c\u6309\u7167ISO 7064:1983.MOD 11-2\u6821\u9a8c\u7801\u8ba1\u7b97\u51fa\u6765\u7684\u68c0\u9a8c\u7801\u3002\r\n\r\n\u51fa\u751f\u65e5\u671f\u8ba1\u7b97\u65b9\u6cd5\u3002\r\n15\u4f4d\u7684\u8eab\u4efd\u8bc1\u7f16\u7801\u9996\u5148\u628a\u51fa\u751f\u5e74\u6269\u5c55\u4e3a4\u4f4d\uff0c\u7b80\u5355\u7684\u5c31\u662f\u589e\u52a0\u4e00\u4e2a19\u621618,\u8fd9\u6837\u5c31\u5305\u542b\u4e86\u6240\u67091800-1999\u5e74\u51fa\u751f\u7684\u4eba;\r\n2000\u5e74\u540e\u51fa\u751f\u7684\u80af\u5b9a\u90fd\u662f18\u4f4d\u7684\u4e86\u6ca1\u6709\u8fd9\u4e2a\u70e6\u607c\uff0c\u81f3\u4e8e1800\u5e74\u524d\u51fa\u751f\u7684,\u90a3\u5565\u90a3\u65f6\u5e94\u8be5\u8fd8\u6ca1\u8eab\u4efd\u8bc1\u53f7\u8fd9\u4e2a\u4e1c\u4e1c\uff0c\u2299\ufe4f\u2299b\u6c57...\r\n\u4e0b\u9762\u662f\u6b63\u5219\u8868\u8fbe\u5f0f:\r\n\u51fa\u751f\u65e5\u671f1800-2099 (18|19|20)?\\d{2}(0[1-9]|1[12])(0[1-9]|[12]\\d|3[01])\r\n\u8eab\u4efd\u8bc1\u6b63\u5219\u8868\u8fbe\u5f0f \/^\\d{6}(18|19|20)?\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\d|3[01])\\d{3}(\\d|X)$\/i \r\n15\u4f4d\u6821\u9a8c\u89c4\u5219 6\u4f4d\u5730\u5740\u7f16\u7801+6\u4f4d\u51fa\u751f\u65e5\u671f+3\u4f4d\u987a\u5e8f\u53f7\r\n18\u4f4d\u6821\u9a8c\u89c4\u5219 6\u4f4d\u5730\u5740\u7f16\u7801+8\u4f4d\u51fa\u751f\u65e5\u671f+3\u4f4d\u987a\u5e8f\u53f7+1\u4f4d\u6821\u9a8c\u4f4d\r\n\r\n\u6821\u9a8c\u4f4d\u89c4\u5219 \u516c\u5f0f:\u2211(ai\u00d7Wi)(mod 11)\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026\u2026(1)\r\n\u516c\u5f0f(1)\u4e2d\uff1a \r\ni----\u8868\u793a\u53f7\u7801\u5b57\u7b26\u4ece\u7531\u81f3\u5de6\u5305\u62ec\u6821\u9a8c\u7801\u5728\u5185\u7684\u4f4d\u7f6e\u5e8f\u53f7\uff1b \r\nai----\u8868\u793a\u7b2ci\u4f4d\u7f6e\u4e0a\u7684\u53f7\u7801\u5b57\u7b26\u503c\uff1b \r\nWi----\u793a\u7b2ci\u4f4d\u7f6e\u4e0a\u7684\u52a0\u6743\u56e0\u5b50\uff0c\u5176\u6570\u503c\u4f9d\u636e\u516c\u5f0fWi=2^(n-1\uff09(mod 11)\u8ba1\u7b97\u5f97\u51fa\u3002\r\ni 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1\r\nWi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1\r\n\r\n*\/\r\n\/\/\u8eab\u4efd\u8bc1\u53f7\u5408\u6cd5\u6027\u9a8c\u8bc1 \r\n\/\/\u652f\u630115\u4f4d\u548c18\u4f4d\u8eab\u4efd\u8bc1\u53f7\r\n\/\/\u652f\u6301\u5730\u5740\u7f16\u7801\u3001\u51fa\u751f\u65e5\u671f\u3001\u6821\u9a8c\u4f4d\u9a8c\u8bc1\r\nfunction IdentityCodeValid(code) { \r\ncode = code.toString();\r\nvar city={11:\"\u5317\u4eac\",12:\"\u5929\u6d25\",13:\"\u6cb3\u5317\",14:\"\u5c71\u897f\",15:\"\u5185\u8499\u53e4\",21:\"\u8fbd\u5b81\",22:\"\u5409\u6797\",23:\"\u9ed1\u9f99\u6c5f \",31:\"\u4e0a\u6d77\",32:\"\u6c5f\u82cf\",33:\"\u6d59\u6c5f\",34:\"\u5b89\u5fbd\",35:\"\u798f\u5efa\",36:\"\u6c5f\u897f\",37:\"\u5c71\u4e1c\",41:\"\u6cb3\u5357\",42:\"\u6e56\u5317 \",43:\"\u6e56\u5357\",44:\"\u5e7f\u4e1c\",45:\"\u5e7f\u897f\",46:\"\u6d77\u5357\",50:\"\u91cd\u5e86\",51:\"\u56db\u5ddd\",52:\"\u8d35\u5dde\",53:\"\u4e91\u5357\",54:\"\u897f\u85cf \",61:\"\u9655\u897f\",62:\"\u7518\u8083\",63:\"\u9752\u6d77\",64:\"\u5b81\u590f\",65:\"\u65b0\u7586\",71:\"\u53f0\u6e7e\",81:\"\u9999\u6e2f\",82:\"\u6fb3\u95e8\",91:\"\u56fd\u5916 \"};\r\nvar tip = \"\";\r\nvar pass= true;\r\nif(!code || !\/^\\d{6}(18|19|20)?\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\d|3[01])\\d{3}(\\d|X)$\/i.test(code)){\r\ntip = \"\u8eab\u4efd\u8bc1\u53f7\u683c\u5f0f\u9519\u8bef\";\r\npass = false;\r\n}\r\nelse if(!city[code.substr(0,2)]){\r\ntip = \"\u5730\u5740\u7f16\u7801\u9519\u8bef\";\r\npass = false;\r\n}\r\nelse{\r\n\/\/18\u4f4d\u8eab\u4efd\u8bc1\u9700\u8981\u9a8c\u8bc1\u6700\u540e\u4e00\u4f4d\u6821\u9a8c\u4f4d\r\nif(code.length == 18){\r\ncode = code.split('');\r\n\/\/\u2211(ai\u00d7Wi)(mod 11)\r\n\/\/\u52a0\u6743\u56e0\u5b50\r\nvar factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];\r\n\/\/\u6821\u9a8c\u4f4d\r\nvar parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];\r\nvar sum = 0;\r\nvar ai = 0;\r\nvar wi = 0;\r\nfor (var i = 0; i &lt; 17; i++)\r\n{\r\nai = code[i];\r\nwi = factor[i];\r\nsum += ai * wi;\r\n}\r\nvar last = parity[sum % 11];\r\nif(parity[sum % 11] != code[17]){\r\ntip = \"\u6821\u9a8c\u4f4d\u9519\u8bef\";\r\npass =false;\r\n}\r\n}\r\n}\r\nif(!pass) console.log(tip);\r\nreturn pass;\r\n}\r\n\r\n\r\n\/\/\u8c03\u7528\r\nif( !IdentityCodeValid(idcard) ){\r\n\u00a0alert('\u8bf7\u8f93\u5165\u6b63\u786e\u8eab\u4efd\u8bc1', '\u597d\u7684');\r\n return false;\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n","protected":false},"excerpt":{"rendered":"<p>js \u6b63\u5219 \u9a8c\u8bc1 \u8eab\u4efd\u8bc1 \u6b63\u5219 \u6700\u597d\u7684jQuery\u6b63\u5219\u9a8c\u8bc1\u8eab\u4efd\u8bc1\u4ee3\u7801: \u6309\u7167\u8eab\u4efd\u8bc1\u7684\u7b97\u6cd5\u5b9a\u5236\u800c\u6210,\u7cbe\u786e\u5ea6\u5b8c\u7f8e\u652f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7335","post","type-post","status-publish","format-standard","hentry","category-wordpress"],"_links":{"self":[{"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/posts\/7335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sdeno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7335"}],"version-history":[{"count":0,"href":"https:\/\/sdeno.com\/index.php?rest_route=\/wp\/v2\/posts\/7335\/revisions"}],"wp:attachment":[{"href":"https:\/\/sdeno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sdeno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sdeno.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}