js身份证验证效果demo示例(整理)

简介: js身份证验证效果demo示例(整理)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js验证身份证</title>
    <script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
</head>
<body>
    <div class="identity">
        身份证号码:<input type="text" class="input" name="num" id="verify" />
        <input type="button" value="验证" onclick='check_verify()' />
    </div>
</body>
<script>
    function verification(idCard) {
        idCard = idCard.replace(/ /g, "");
        if (idCard.length == 15) {
            return isValidityBrithBy15IdCard(idCard);
        } else if (idCard.length == 18) {
            var a_idCard = idCard.split("");
            if (isValidityBrithBy18IdCard(idCard) && validate(a_idCard)) {
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
        return true;
    }
    //判断身份证号18位时最后一位是否正确
    function validate(a_idCard) {
        var ValideCode = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2]; //身份证验证位值.10代表X  
        var yinzi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];  
        var sum = 0;
        if (a_idCard[17].toLowerCase() == 'x') {
            a_idCard[17] = 10;
        }
        for (var i = 0; i < 17; i++) {
            sum += yinzi[i] * a_idCard[i];
        }
        var valCodePosition = sum % 11;
        if (a_idCard[17] == ValideCode[valCodePosition]) {
            return true;
        } else {
            return false;
        }
    }
    function isValidityBrithBy18IdCard(idCard18) {
        var year = idCard18.substring(6, 10);
        var month = idCard18.substring(10, 12);
        var day = idCard18.substring(12, 14);
        var temp_date = new Date();
        temp_date.setYear(year);
        temp_date.setMonth(parseInt(month, 10) - 1);
        temp_date.setDate(parseInt(day, 10));
        if (temp_date.getFullYear() != parseInt(year, 10) || temp_date.getMonth() != parseInt(month, 10) - 1 || temp_date.getDate() != parseInt(day, 10)) {
            return true;
        } else {
            return true;
        }
    }
    function isValidityBrithBy15IdCard(idCard15) {
        var year = idCard15.substring(6, 8);
        var month = idCard15.substring(8, 10);
        var day = idCard15.substring(10, 12);
        var temp_date = new Date();
        temp_date.setYear(year);
        temp_date.setMonth(parseInt(month, 10) - 1);
        temp_date.setDate(parseInt(day, 10));
        if (temp_date.getYear() != parseInt(year, 10) || temp_date.getMonth() != parseInt(month, 10) - 1 || temp_date.getDate() != parseInt(day, 10)) {
            return true;
        } else {
            return true;
        }
    }
    function  check_verify() {
        var verify = $("#verify").val();
        var res = verification(verify);
        if (res == true) {
            alert('正确');
        } else {
            alert('错误');
        }
    }
</script>
</html>
相关文章
|
1天前
egg.js 24.18参数验证
egg.js 24.18参数验证
31 0
egg.js 24.18参数验证
|
1天前
|
存储 JavaScript 前端开发
账号登录验证(原生js,本地存储)
账号登录验证(原生js,本地存储)
27 0
|
1天前
|
JavaScript
js 输入身份证获取生日性别年龄
js 输入身份证获取生日性别年龄
|
1天前
|
前端开发 应用服务中间件 nginx
Next.js 创建项目到服务器部署(目录结构介绍、项目结构Demo、开发细节注意)
Next.js 创建项目到服务器部署(目录结构介绍、项目结构Demo、开发细节注意)
457 0
|
1天前
|
JavaScript 前端开发
JS实现网页页面的框架(demo)
JS实现网页页面的框架(demo)
10 1
|
1天前
|
编解码 JavaScript 前端开发
【专栏】介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例
【4月更文挑战第29天】本文介绍了字符串Base64编解码的基本原理和在Java、Python、C++、JavaScript及Go等编程语言中的实现示例。Base64编码将24位二进制数据转换为32位可打印字符,用“=”作填充。文中展示了各语言的编码解码代码,帮助开发者理解并应用于实际项目。
|
1天前
|
JSON 前端开发 JavaScript
从假数据到动态表格:一个简单的JavaScript和HTML示例
从假数据到动态表格:一个简单的JavaScript和HTML示例
|
1天前
|
JavaScript 前端开发 开发者
JavaScript中的变量提升:解析、应用及示例
JavaScript中的变量提升:解析、应用及示例
19 1
|
1天前
|
JavaScript
js开发:请解释什么是ES6的扩展运算符(spread operator),并给出一个示例。
ES6的扩展运算符(...)用于可迭代对象展开,如数组和对象。在数组中,它能将一个数组的元素合并到另一个数组。例如:`[1, 2, 3, 4, 5]`。在对象中,它用于复制并合并属性,如`{a: 1, b: 2, c: 3}`。
13 3
|
1天前
|
JavaScript
js开发:请解释什么是ES6的默认参数(default parameters),并给出一个示例。
ES6允许在函数参数中设置默认值,如`function greet(name = &#39;World&#39;) {...}`。当调用函数不传入`name`参数时,它将默认为&#39;World&#39;,提升代码简洁性和可读性。例如:`greet()`输出&quot;Hello, World!&quot;,`greet(&#39;Alice&#39;)`输出&quot;Hello, Alice!&quot;。
16 4