﻿{"id":351,"date":"2021-01-18T15:32:47","date_gmt":"2021-01-18T07:32:47","guid":{"rendered":"http:\/\/www.linux-dba.com\/?p=351"},"modified":"2021-01-18T15:34:33","modified_gmt":"2021-01-18T07:34:33","slug":"pb-%e9%aa%8c%e8%af%81%e8%ba%ab%e4%bb%bd%e8%af%81%e5%8f%b7%e7%a0%81%e6%98%af%e5%90%a6%e7%ac%a6%e5%90%88%e8%a7%84%e5%88%99","status":"publish","type":"post","link":"http:\/\/www.linux-dba.com\/index.php\/2021\/01\/351\/","title":{"rendered":"PB \u9a8c\u8bc1\u8eab\u4efd\u8bc1\u53f7\u7801\u662f\u5426\u7b26\u5408\u89c4\u5219"},"content":{"rendered":"\n<p>\/\/====================================================================<br>\/\/ Declare: f_idcardvalid(readonly string as_cardno,reference string as_msg).<br>\/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br>\/\/ \u63cf\u8ff0: \u8eab\u4efd\u8bc1\u53f7\u7801\u68c0\u9a8c<br>\/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br>\/\/ \u53c2\u6570: readonly string as_cardno<br>\/\/ reference string as_msg<br>\/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br>\/\/ \u8fd4\u56de: 1 \u6821\u9a8c\u6210\u529f\uff0c-1 \u6821\u9a8c\u5931\u8d25\uff0c\u5e76\u8fd4\u56de\u8ba1\u7b97\u540e\u7684\u8bc1\u4ef6\u53f7\uff0c-2 \u6821\u9a8c\u5931\u8d25\uff0c\u8fd4\u56de\u9519\u8bef\u4fe1\u606f<br>\/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br>\/\/ \u4f5c\u8005: ZXD \u65e5\u671f: 2021\/01\/18 10:02:59<br>\/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br>\/\/ CopyRight(c)<br>\/\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br>\/\/ \u4fee\u6539\u5386\u53f2:<br>\/\/<br>\/\/====================================================================<\/p>\n\n\n\n<p>int li_i = 0,li_sum = 0<br>int li_char<br>string ls_tmp = &#8221;,ls_cardno = &#8221;,ls_card_valid = &#8221;<br>string ls_birthday = &#8221;<br>date ldt_birthday<\/p>\n\n\n\n<p>int li_factor[17] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}<br>string ls_valid[11] = {&#8216;1&#8242;,&#8217;0&#8242;,&#8217;X&#8217;,&#8217;9&#8242;,&#8217;8&#8242;,&#8217;7&#8242;,&#8217;6&#8242;,&#8217;5&#8242;,&#8217;4&#8242;,&#8217;3&#8242;,&#8217;2&#8242;}<\/p>\n\n\n\n<p>ls_cardno = upper(trim(as_cardno))<\/p>\n\n\n\n<p>if not (len(ls_cardno) = 15 or len(ls_cardno) = 18) then<br>as_msg = &#8216;\u975e\u8eab\u4efd\u8bc1\u53f7&#8217;<br>return &#8211; 2<br>end if<\/p>\n\n\n\n<p>if not match(ls_cardno,'[0-9]+[0-9X]&#8217;) then<br>as_msg = &#8216;\u975e\u8eab\u4efd\u8bc1\u53f7\uff0c\u542b\u975e\u6cd5\u5b57\u7b26&#8217;<br>return &#8211; 2<br>end if<\/p>\n\n\n\n<p>\/\/ \u5982\u679c\u4e3a15\u4f4d,\u5148\u5224\u65ad\u6700\u540e\u4e00\u4f4d\u662f\u5426X\uff0c\u518d\u8f6c\u6362\u4e3a17\u4f4d<br>if len(ls_cardno) = 15 then<br>if right(ls_cardno,1) = &#8216;X&#8217; then<br>as_msg = &#8217;15\u4f4d\u8eab\u4efd\u8bc1\u53f7\uff0c\u65e0\u68c0\u9a8c\u4f4d&#8217;<br>return &#8211; 2<br>end if<br>ls_tmp = left(ls_cardno,6) + &#8217;19&#8217; + right(ls_cardno,9)<br>ls_cardno = ls_tmp<br>end if<\/p>\n\n\n\n<p>ls_birthday = mid(ls_cardno,7,4) + &#8216;-&#8216; + mid(ls_cardno,11,2) + &#8216;-&#8216; + mid(ls_cardno,13,2)<br>if not IsDate(ls_birthday) then<br>as_msg = ls_birthday + &#8216;\u975e\u8eab\u4efd\u8bc1\u53f7&#8217;<br>return &#8211; 2<br>end if<\/p>\n\n\n\n<p>li_sum = 1<br>for li_i = 1 to 17<br>ls_tmp = mid(ls_cardno,li_i,1)<br>li_char = integer(ls_tmp)<br>li_sum += li_char * li_factor[li_i]<br>next<\/p>\n\n\n\n<p>li_i = mod(li_sum,11)<br>if li_i = 0 then<br>li_i = 11<br>end if<br>ls_tmp = ls_valid[li_i]<br>ls_card_valid = left(ls_cardno,17) + ls_tmp \/\/ \u8ba1\u7b97\u540e\u5e26\u68c0\u9a8c\u7801\u8eab\u4efd\u8bc1\u53f7<\/p>\n\n\n\n<p>as_msg = ls_card_valid<br>\/\/ \u8eab\u4efd\u8bc1\u53f7\u7801\u91cd\u65b0\u8ba1\u7b97\u68c0\u9a8c\u4f4d\u540e\u4e0e\u539f\u8bc1\u4ef6\u53f7\u4e00\u81f4,\u9a8c\u8bc1\u901a\u8fc7<br>if upper(trim(as_cardno)) = ls_card_valid then<br>return 1<br>else<br>return &#8211; 1<br>end if<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PB\u9a8c\u8bc1\u8eab\u4efd\u8bc1\u53f7\u7801\u662f\u5426\u7b26\u5408\u89c4\u5219<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[39],"tags":[16,5],"_links":{"self":[{"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/posts\/351"}],"collection":[{"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/comments?post=351"}],"version-history":[{"count":2,"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/posts\/351\/revisions"}],"predecessor-version":[{"id":353,"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/posts\/351\/revisions\/353"}],"wp:attachment":[{"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/media?parent=351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/categories?post=351"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.linux-dba.com\/index.php\/wp-json\/wp\/v2\/tags?post=351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}