wuruize888 2017-05-21 14:23 采纳率: 66.7%
浏览 1008
已采纳

js,正则验证身份证问题,哪位师傅帮个忙。谢谢

 <!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="jquery.js"></script>
        <script>

            $(function () {

                $("#name").blur(function () {
                    var s = $("#name").val();
                    if (funID(s)) {
                        $("#aaa").append("合规");
                    }
                });
                function funID(Str) { //功能:判断是否为身份证,需要引入规则,暂时不需要实现。
                    if (Str.length === 15) {
                        var id15 = new RegExp("^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$");
                        if (id15.test(Str)) {
                            return true;
                        } else {
                            return false;
                        }
                    } else if (Str.length === 18) {
                        var id18 = new RegExp("/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$");
                        if (id18.test(Str)) {
                            return true;
                        } else {
                            return false;
                        }
                    } else {
                        return false;
                    }
                }

            });
        </script>
    </head>
    <body>
        <div>
            <form><input type="text" id="name" name="name"/></form>
            <span id="aaa"></span>

        </div>
    </body>
</html>

验证不通过,哪里问题?

  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2017-05-21 14:32
    关注
    
    \d要修改为\\d,\要做转义,要不你是转义\d,没有这个转义字符直接变为d字符了,18位那个第一个/去掉
    
    
            $(function () {
    
                $("#name").blur(function () {
                    var s = $("#name").val();
                    if (funID(s)) {
                        $("#aaa").html("合规");
                    } else $("#aaa").html("不合规");
                });
                function funID(Str) { //功能:判断是否为身份证,需要引入规则,暂时不需要实现。
                    if (Str.length === 15) {
                        var id15 = new RegExp("^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$");
                        if (id15.test(Str)) {
                            return true;
                        } else {
                            return false;
                        }
                    } else if (Str.length === 18) {
                        var id18 = new RegExp("^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{4}$");//去掉开始的/
                        console.log(Str, id18)
                        if (id18.test(Str)) {
                            return true;
                        } else {
                            return false;
                        }
                    } else {
                        return false;
                    }
                }
    
            });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据