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 "失败";
     }

  • 相关阅读:
    时间戳(1532249295.179) 转日期格式(2018/07/22 16:48:15 179)
    iscroll.js右侧可滑动的菜单,点击每个菜单都会出现本菜单的详情
    canvas绘制的文字如何换行
    移动端H5页面禁止长按复制和去掉点击时高亮
    一列宽度不缩放,一列宽度弹性缩放,且超出后显示省略号
    js钩子机制(hook)
    mCustomScrollbar.js 漂亮的滚动条插件 适应内容自动更新
    axios.js 实例 -----$.ajax的替代方案
    用 async/await 来处理异步实例
    C#入门经典第18章-WEB编程
  • 原文地址:https://www.cnblogs.com/lpblogs/p/7289422.html
Copyright © 2011-2022 走看看