javascript验证身份证号

下面是JavaScript验证身份证号的完整攻略,包含以下几个步骤:

步骤一:获取身份证号码

身份证号码是由18个数字和一个末尾可能为字母X的字符组成,我们需要先获取用户输入的身份证号码。

示例代码:

<input type="text" id="idCardNumber">

步骤二:正则表达式验证身份证号

使用正则表达式验证身份证号码的有效性是一种常见的方法。以下是一个示例正则表达式,可以验证18位身份证号码的格式是否正确:

/^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}[Xx\d]$/

其中,正则表达式中的每一个部分都有特定意义,有需要的读者可以自行去学习正则表达式的相关知识。

示例代码:

const idCardNumber = document.querySelector('#idCardNumber').value;
const regExp = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\d{3}[Xx\d]$/;
if (regExp.test(idCardNumber)) {
  console.log('身份证号码格式正确');
} else {
  console.log('身份证号码格式错误');
}

步骤三:计算身份证号码的校验码

身份证号码的最后一位可能是数字或字母X,这个字母X代表的是数字10。我们需要将身份证号码前17个数字加权求和,然后将结果除以11取余,得到的余数再用一个数组进行校验码计算,如果校验码与身份证号码的最后一位相等,则身份证号码格式正确。

示例代码:

const idCardNumber = document.querySelector('#idCardNumber').value;
const idCardArray = idCardNumber.split('');
const idCardWeight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
const idCardVerifyCode = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
let idCardSum = 0;
for (let i = 0; i < 17; i++) {
  idCardSum += parseInt(idCardArray[i]) * idCardWeight[i];
}
const idCardModulus = idCardSum % 11;
if (idCardVerifyCode[idCardModulus] === idCardArray[17]) {
  console.log('身份证号码格式正确');
} else {
  console.log('身份证号码格式错误');
}

示例一

用户输入的身份证号码为:420111199001011234

运行以上代码,控制台输出:身份证号码格式正确,说明用户输入的身份证号码符合规范。

示例二

用户输入的身份证号码为:420111190001011234

运行以上代码,控制台输出:身份证号码格式错误,说明用户输入的身份证号码不符合规范。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript验证身份证号 - Python技术站

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

相关文章

  • 如何使用浏览器扩展篡改网页中的JS 文件

    使用浏览器扩展篡改网页中的JS文件可以用于修改网页一些不符合个人需求的行为,比如阅读模式、去广告、页面美化等。下面是详细的攻略步骤: 步骤一:安装浏览器扩展 首先需要在浏览器的应用商店中搜索安装一个支持JS代码注入的浏览器扩展。不同浏览器扩展功能不完全相同,例如Chrome浏览器可以安装“Tampermonkey”、Firefox浏览器可以安装“Grease…

    JavaScript 2023年5月27日
    00
  • JavaScript面向对象实现贪吃蛇游戏

    JavaScript面向对象实现贪吃蛇游戏的步骤如下: 定义Snake类 Snake类表示贪吃蛇,包含以下属性: body:表示蛇身,由一个包含多个坐标的数组组成 direction:表示蛇的方向,可以取值为”up”、”down”、”left”、”right”之一 Snake类包含以下方法: move():根据方向移动蛇的位置,并更新蛇的身体 changeD…

    JavaScript 2023年6月10日
    00
  • 深入理解Ajax的get和post请求

    关于深入理解Ajax的get和post请求,下面是我分享的完整攻略。 理解Ajax 什么是Ajax? Ajax是“Asynchronous JavaScript And XML”的缩写,意思是“异步JavaScript和XML”。 简单来说,Ajax使得Web应用程序可以在不重新加载页面的情况下进行异步通信。 这意味着您可以使用JavaScript向服务器发…

    JavaScript 2023年6月11日
    00
  • 在js文件中引入(调用)另一个js文件的三种方法

    在 JavaScript 中引入(调用)其他 JavaScript 文件的方式主要有以下三种: 1. 使用<script>标签引入(调用)其他 JavaScript 文件 使用<script>标签可以在 HTML 文件中引入(调用)其他 JavaScript 文件,该文件可以被浏览器直接加载。 <script>标签通常放在…

    JavaScript 2023年5月27日
    00
  • DOM Scripting中的图片切换[兼容Firefox]

    首先我们来分析一下“DOM Scripting中的图片切换[兼容Firefox]”这个问题。 问题分析 图片切换是一个常见的网页特效,实现该特效的核心是将多个图片进行显示与隐藏。DOM Scripting提供了一种在浏览器中对文档对象模型进行操作的方式,可以利用它来实现图片的切换效果。但是,在不同的浏览器中,对于DOM的实现方式不同,需要针对不同的浏览器,进…

    JavaScript 2023年6月10日
    00
  • 2022发布ECMAScript新特性盘点

    2022发布ECMAScript新特性盘点 ECMAScript是JavaScript的标准化规范,随着JavaScript在各种领域的广泛应用,ECMAScript的发展也越来越快速。2022年发布的ECMAScript新特性是JavaScript开发者需要重点关注的内容之一。本文将详细讲解这些新特性并提供示例说明。 BigInt BigInt是一种新的基…

    JavaScript 2023年5月27日
    00
  • JS作用域链详解

    JS作用域链详解 JavaScript采用词法作用域,也就是变量的作用域在定义时就已经确定了。而在JavaScript中,作用域可以形成一个链式结构,这被称为作用域链。在这个链结构中,每一个函数都有自己的作用域,如果一个变量在当前作用域中未定义,则会沿着作用域链向上查找,直到查找到该变量为止,或者到达全局作用域。 作用域链的构成 JavaScript中的作用…

    JavaScript 2023年6月10日
    00
  • Javascript柯里化实现原理及作用解析

    Javascript柯里化实现原理及作用解析 什么是柯里化? 柯里化(Currying)是一种函数式编程技巧,它是指将接受多个参数的函数转变为接受单一参数的函数,并且返回一个新函数来处理剩余的参数。 举个例子,将如下的函数: function add(x, y, z) { return x + y + z; } 转变为柯里化的形式: function add…

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