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

yizhihongxing

下面我将为你详细讲解如何实现“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 通用loading动画效果实例代码

    对于这个问题,我可以提供以下完整攻略: JavaScript 通用 Loading 动画效果实例代码 什么是 Loading 动画 Loading 动画指的是在某些长时间操作(例如网络请求或计算)期间,为了让用户知道应用程序正在运行中,而在屏幕上呈现的动画效果。通常采用旋转、脉冲或进度条等形式。 如何实现 Loading 动画 HTML & CSS …

    JavaScript 2023年6月10日
    00
  • JS控制TreeView的结点选择

    控制TreeView结点选择的方法主要有以下两种: 使用JavaScript代码控制TreeView的结点选择 可以通过JS控制TreeView的checkbox,从而实现TreeView的选择控制。具体实现过程如下: (1)获取TreeView的DOM结构 <asp:TreeView ID="TreeView1" runat=&q…

    JavaScript 2023年6月11日
    00
  • JavaScript 模式之工厂模式(Factory)应用介绍

    JavaScript 模式之工厂模式(Factory)应用介绍 工厂模式介绍 工厂模式是一种用于创建对象的设计模式,它不需要通过类来进行对象的创建,而是通过工厂方法来实现。它常用于解决创建对象时需要大量重复代码的问题。通过一个工厂方法,可以在其中定义所有对象的创建过程,从而使代码更加简洁、易于维护。工厂模式可以产生多个具有相同特征的对象。 工厂模式的应用 工…

    JavaScript 2023年6月10日
    00
  • 原生js实现轮播图的示例代码

    让我们一步步讲解如何使用原生JS实现轮播图。在开始之前,请确保你已经了解了HTML、CSS和基础的JavaScript知识。 1. HTML结构 首先,我们需要在HTML文件中创建我们的轮播图结构。下面是一个基本的例子: <div class="slider"> <div class="slides"…

    JavaScript 2023年6月10日
    00
  • JS实用的带停顿的逐行文本循环滚动效果实例

    让我来为您详细讲解“JS实用的带停顿的逐行文本循环滚动效果实例”的完整攻略。 简介 “带停顿的逐行文本循环滚动效果”是一种常见的滚动技术,可以使网页的文本内容呈现出逐行滚动的效果,并可通过设置停顿时间来实现滚动效果的调节。本文将介绍如何使用JavaScript实现这种效果。 实现步骤 HTML结构 首先,我们需要定义一个HTML结构用于承载逐行滚动的内容。下…

    JavaScript 2023年6月11日
    00
  • JavaScript实现抽奖器效果

    抽奖器效果是很常见的一种交互效果,下面就用 Markdown 格式给大家详细讲解一下如何使用 JavaScript 实现抽奖器效果。 准备工作 在实现抽奖器效果之前,我们需要先准备好以下工作: 在 HTML 页面中放置一个用于显示抽奖结果的元素,比如一个 span 标签。 准备好抽奖数据,可以是一个数组,每个元素表示一个奖品。 实现步骤 接下来就可以开始实现…

    JavaScript 2023年6月11日
    00
  • 9个JavaScript日常开发小技巧

    当然!以下是“9个JavaScript日常开发小技巧”的完整攻略: 1. 使用console.table()格式化输出数组/对象 在日常开发中,我们常常需要输出数组/对象信息以便于调试。但是,如果直接使用console.log()输出,往往难以看清楚其中结构和数据。这时候,我们可以使用console.table()方法,可以使用表格的形式格式化输出数组/对象…

    JavaScript 2023年5月18日
    00
  • setTimeout时间设置为0详细解析

    setTimeout时间设置为0详细解析 什么是setTimeout? setTimeout是JavaScript的一个函数,它可以用来在一定延迟后执行一个函数。 语法如下: setTimeout(function, delay, arg1, arg2, …) 其中, function是要执行的回调函数。 delay是延迟的毫秒数,表示多长时间后执行回调…

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