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 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突