15位和18位身份证JS校验的简单实例

下面我将为你详细讲解如何实现“15位和18位身份证JS校验的简单实例”。

校验15位和18位身份证简单实例

1. 判断身份证长度

在对身份证进行校验之前,需要先判断身份证长度是否合法。根据规定,15位身份证和18位身份证长度分别是15和18位。具体实现代码如下所示:

function checkIdCard(idCard) {
    // 判断身份证长度
    if (idCard.length != 15 && idCard.length != 18) {
        console.log("身份证长度不正确");
        return false;
    } else {
        return true;
    }
}

2. 判断身份证的前17位是否是数字

身份证的前17位必须是数字,因此需要对前17位进行校验。具体实现代码如下所示:

function checkIdCard(idCard) {
    // 判断身份证长度
    if (idCard.length != 15 && idCard.length != 18) {
        console.log("身份证长度不正确");
        return false;
    }

    // 判断身份证前17位是否是数字
    var reg = /^\d{17}$/;
    if (!reg.test(idCard.substr(0, 17))) {
        console.log("身份证前17位应该是数字");
        return false;
    } else {
        return true;
    }
}

示例一:校验15位身份证

下面是一个校验15位身份证的示例代码:

function checkIdCard(idCard) {
    // 判断身份证长度
    if (idCard.length != 15 && idCard.length != 18) {
        console.log("身份证长度不正确");
        return false;
    }

    // 判断身份证前17位是否是数字
    var reg = /^\d{15}$/;
    if (!reg.test(idCard)) {
        console.log("15位身份证应该是数字");
        return false;
    } else {
        return true;
    }
}

var idCard = "110101821122333";
var result = checkIdCard(idCard);
if (result) {
    console.log(idCard + " 是一个合法的身份证号码");
} else {
    console.log(idCard + " 不是一个合法的身份证号码");
}

执行结果如下所示:

110101821122333 是一个合法的身份证号码

示例二:校验18位身份证

下面是一个校验18位身份证的示例代码:

function checkIdCard(idCard) {
    // 判断身份证长度
    if (idCard.length != 15 && idCard.length != 18) {
        console.log("身份证长度不正确");
        return false;
    }

    // 判断身份证前17位是否是数字
    var reg = /^\d{17}$/;
    if (!reg.test(idCard.substr(0, 17))) {
        console.log("身份证前17位应该是数字");
        return false;
    }

    // 判断身份证最后一位校验码是否正确
    if (idCard.length == 18) {
        var code = idCard.substr(17, 1);  // 取出校验码
        var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];  // 加权因子
        var parity = [1, 0, 'x', 9, 8, 7, 6, 5, 4, 3, 2];  // 校验位对应值
        var sum = 0;
        for (var i = 0; i < 17; i++) {
            sum += parseInt(idCard.substr(i, 1)) * factor[i];
        }
        var remainder = sum % 11;
        if (parity[remainder] != code.toLowerCase()) {
            console.log("身份证校验码不正确");
            return false;
        }
    }

    return true;
}

var idCard = "110101198211223333";
var result = checkIdCard(idCard);
if (result) {
    console.log(idCard + " 是一个合法的身份证号码");
} else {
    console.log(idCard + " 不是一个合法的身份证号码");
}

执行结果如下所示:

110101198211223333 是一个合法的身份证号码

以上就是关于“15位和18位身份证JS校验的简单实例”的完整攻略,希望能够帮到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:15位和18位身份证JS校验的简单实例 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript保留关键字汇总

    下面是JavaScript保留关键字汇总的完整攻略。 什么是JavaScript保留关键字 JavaScript保留关键字是指被JavaScript编程语言用作内部特定目的的单词或符号。这些单词或符号不能被作为变量名、函数名或标识符等用于代码中。如果这些关键字被用作标识符,代码就会出现编译错误。所以我们在编写JavaScript代码的时候,需要避免使用保留关…

    JavaScript 2023年5月18日
    00
  • 详解JSP 内置对象request常见用法

    详解JSP 内置对象request常见用法 1. request对象介绍 JSP内置对象request代表了一个HTTP请求,包含了客户端上所有的请求信息。当客户端发出请求,服务器就会创建一个request对象,并且request对象会一直存在于整个HTTP请求的生命周期中。request对象可以用来获取HTTP请求的参数,以及在服务器端保存和获取数据。 2…

    JavaScript 2023年6月11日
    00
  • JS中的箭头函数

    在JavaScript中,箭头函数是一种简化的函数语法,它在ES6(ECMAScript 2015)引入。箭头函数的语法比传统的function表达式更简洁,同时还有一些特性,例如继承外部作用域的this值。 箭头函数的基本语法如下: (param1, param2, …, paramN) => { statements } (param1, pa…

    JavaScript 2023年5月11日
    00
  • ajax前台后台跨域请求处理方式

    当浏览器端发起跨域请求时,如果请求头中不包含适当的跨域示意标识,目标服务器会拒绝该请求,所以前端需要先向服务器获取跨域请求准许,然后再发起跨域请求。这个过程涉及到的技术就是 ajax 前台后台跨域请求处理方式。 下面是处理跨域请求的完整攻略和两个示例: 1. 服务器端处理方式 如果前台请求是 GET 请求,服务器端需要处理跨域请求,在 HTTP 响应头中添加…

    JavaScript 2023年6月11日
    00
  • JS模拟实现串行加法器

    JS模拟实现串行加法器的攻略分为以下几步: 1. 了解加法器的原理与特点 加法器是计算机中至关重要的数据处理器之一,它可以将两个或多个数字相加,可用于各种应用中,如计算机内存、操作数检查和基本算术运算。串行加法器是指一步一步实现加法计算,即从低位到高位逐步计算的加法器,特点是每位计算只相关前一个位置的进位,而后一位的进位则要待到下一次计算中。 2. 实现JS…

    JavaScript 2023年5月27日
    00
  • 2020年12道高频JavaScript手写面试题及答案

    下面我来详细讲解一下“2020年12道高频JavaScript手写面试题及答案”的完整攻略。 一、背景介绍 该文章主要介绍了2020年12道高频JavaScript手写面试题及答案,这些面试题具有一定难度,涵盖了JavaScript的各种基本知识点,例如执行上下文、this指针、原型链等。 二、攻略流程 该文章可以按照以下流程来进行攻略: 先了解每个面试题的…

    JavaScript 2023年6月10日
    00
  • JS判断是否为JSON对象及是否存在某字段的方法(推荐)

    JS判断是否为JSON对象及是否存在某字段的方法(推荐) 有时候在JS中需要判断一个值是否为JSON对象,或者需要判断某个字段是否存在于JSON对象中。本文将详细介绍这两个问题的解决方法。 判断是否为JSON对象 在JS中,JSON对象是一个简单的data结构,它包括一组键/值对。JSON对象用于传输数据,在服务器和客户端之间传递数据。虽然JSON对象看起来…

    JavaScript 2023年5月27日
    00
  • quickjs 封装 JavaScript 沙箱详情

    下面我将详细讲解如何封装JavaScript沙箱并提供两个实例说明。 QuickJS 封装 JavaScript 沙箱 前置要求 在开始封装JavaScript沙箱前,我们需要了解以下知识: QuickJS: 一款高效的Javascript引擎 沙箱: 限制JavaScript执行环境,避免恶意代码执行或获取主程序敏感信息 思路与方案 为了实现封装JavaS…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部