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日

相关文章

  • 千篇一律的JS运算符讲解,一起来看看

    千篇一律的JS运算符讲解,一起来看看 前言 JS运算符是编写JS代码时非常基本的一种语法。很多初学者在学习JS时可能会忽略这些运算符的学习,但却是非常重要的基础。在本篇文章中,我们将会全面讲解JS的运算符,并提供一些示例来帮助读者更好地理解这些内容。 算术运算符 运算符 描述 示例 + 加法 10 + 20 = 30 – 减法 20 – 10 = 10 * …

    JavaScript 2023年5月28日
    00
  • vue调用本地摄像头实现拍照功能

    下面我将详细讲解“vue调用本地摄像头实现拍照功能”的完整攻略。 1. 添加依赖库 首先需要引入vue-web-cam库,它提供了调用本地摄像头的功能。可以通过如下命令安装: npm install vue-web-cam 2. 实现拍照功能 接下来,我们需要在组件中实现拍照功能。这里提供两种示例。 示例 1:使用原生的HTML和JavaScript实现拍照…

    JavaScript 2023年6月11日
    00
  • js 返回时间戳所对应的具体时间

    为了返回时间戳所对应的具体时间,我们可以使用Date()对象及其方法来实现。 下面介绍具体步骤: 1. 获取时间戳 首先需要获取时间戳,时间戳是1970年1月1日 00:00:00 UTC到指定时间的毫秒数。可以通过以下代码获取当前时间戳: const timestamp = new Date().getTime(); 2. 转换时间戳为日期时间格式 使用D…

    JavaScript 2023年5月27日
    00
  • 一文搞懂 Promise 新 Api allSettled 的用法和 all 区别,以及如何在不支持新特性的环境下实现一个 Polyfill

    开始 一文搞懂 Promise 新 Api allSettled 的用法和 all 区别,以及如何在不支持新特性的环境下实现一个 Polyfill allSettled 的用法 const runAllSettled = async () => { const successPromise = Promise.resolve(‘success’) //…

    JavaScript 2023年4月30日
    00
  • JS代码放在head和body中的区别分析

    JS代码放在head和body中的区别分析 以网页为例,其中包含了HTML、CSS、JS三种内容。其中HTML体现了网页的内容结构,CSS刻画了网页的外观样式,而JS则掌管了网页的交互行为。而JS代码在页面中该如何放置呢?通常有两种位置可供选择:head标签内和body标签内。下面分别对这两种方式进行分析。 head标签内放置JS代码 head标签一般放置的…

    JavaScript 2023年6月11日
    00
  • JavaScript事件学习小结(一)事件流

    JavaScript事件学习小结(一)事件流 前言 JavaScript 是一种基于事件驱动的编程语言,而事件机制也是 JavaScript 中非常重要的一部分。本篇笔记介绍的是事件流的相关知识,对于理解事件机制起着重要的作用。 什么是事件流? 当一个事件发生时,JavaScript 引擎会按照一定的顺序处理事件。这个顺序就是事件流。 事件流分为两种:冒泡流…

    JavaScript 2023年6月10日
    00
  • JS实现json对象数组按对象属性排序操作示例

    讲解“JS实现json对象数组按对象属性排序操作示例”的完整攻略,大致分为以下步骤: 1.准备JSON对象数组数据首先,我们需要准备一组JSON对象数组数据。例如,假设我们要对一个用户列表进行排序,我们可以定义一个包含多个用户信息的数组,每个用户信息都是一个JSON对象。示例代码如下: var users = [ { name: "张三"…

    JavaScript 2023年5月27日
    00
  • 跟我学习javascript的this关键字

    当编写 JavaScript 代码时,经常会使用 this 关键字。它可以引用当前上下文中的对象,其行为特点是动态绑定。但是,该关键字在不同的上下文环境中使用可能会产生不同的结果,这常常导致初学者的困惑。本文将深入讲解 JavaScript 的 this 关键字, 帮助初学者理解并正确运用它。 1. this关键字指向全局对象 在全局环境中,使用 this …

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