zoukankan      html  css  js  c++  java
  • JS验证身份证号是否合法

    demo代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <input type="text" name="idcard" id="idcard">
        <span></span>
    </body>
    </html>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    $(function () {

        $("#idcard").on('blur',function () {
            var idcard = $(this).val();          // 身份证号字符串
            idcardArr = idcard.split('');                          // 分割成身份证号数组
            var _length = idcardArr.length;                        // 身份证号长度
            var arr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];    // 加权因子(不可变)
            var yan = [1,0,'X',9,8,7,6,5,4,3,2];                       // 校验码    (不可变)
            var str = 0;
            for (var i = 0; i < _length-1; i++) {
                str = parseInt(str+idcard[i]*arr[i]);                  // 计算求和
            }
            var _yu = str % 11;                                             // 取余
            var _lastnum = yan[_yu];                                   // 最后一位数

            if (idcardArr[_length-1] == _lastnum) {    // 判断是否相同
                $(this).next().html('<font color=green>√</font>');
                return true;
            }else{
                $(this).next().html('<font color=red size=2>×</font>');
                return false;
            }

        })
    })    
    </script>

    -------------------------------------------------------------------------------------------------

    以下为php实现代码:

    <?php
     $cardid="身份证号";
     $len=strlen($cardid);

     //加权
     $arr=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
     $str=0;
    for ($i=0; $i <$len-1 ; $i++) {
         $substr=substr($cardid,$i,1);

        $str=$str+$substr*$arr[$i];
    }

     $str=$str%11;
     $array=array(0=>1,1=>0,2=>"x",3=>9,4=>8,5=>7,6=>6,7=>5,8=>4,9=>3,10=>2);
     $yu=$array[$str];
     if($yu==substr($cardid,17,18)){
        echo "正确";
     }else{
         echo "失败";
     }

  • 相关阅读:
    hdu 3342 Legal or Not 拓排序
    hdu 1596 find the safest road Dijkstra
    hdu 1874 畅通工程续 Dijkstra
    poj 2676 sudoku dfs
    poj 2251 BFS
    poj Prime Path BFS
    poj 3278 BFS
    poj 2387 Dijkstra 模板
    poj 3083 DFS 和BFS
    poj 1062 昂贵的聘礼 dijkstra
  • 原文地址:https://www.cnblogs.com/lpblogs/p/7289422.html
Copyright © 2011-2022 走看看