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日

相关文章

  • vue router+vuex实现首页登录验证判断逻辑

    下面是“vue router+vuex实现首页登录验证判断逻辑”的完整攻略。 前置知识 在开始学习“vue router + vuex实现首页登录验证判断逻辑”的过程中,需要掌握以下的前置知识: Vue.js的基本语法和开发思想 Vue Router的基本使用和实现原理 Vuex的基本使用和实现原理 实现步骤 配置Vue Router的路由守卫 在Vue R…

    JavaScript 2023年6月11日
    00
  • vue使用keep-alive保持滚动条位置的实现方法

    当我们在Vue应用中使用Vue-router进行路由跳转时,如果跳转到的页面存在滚动条,那么这时候就会存在一个问题,就是当我们返回到之前的路由时,滚动条会自动回到顶部,而不是保持在之前的位置。而我们可以使用keep-alive组件来保持滚动条位置。 Vue中keep-alive组件的使用 Vue中的keep-alive组件可以帮助我们在组件切换时,保留组件状…

    JavaScript 2023年6月11日
    00
  • js时间戳与日期格式之间相互转换

    关于“js时间戳与日期格式之间相互转换的攻略”,我会从以下方面进行详细讲解: 时间戳和日期格式的概念及区别 时间戳转日期格式的方法 日期格式转时间戳的方法 示例说明 1. 时间戳和日期格式的概念及区别 时间戳是1970年1月1日(UTC/GMT的午夜)距离某一时间点的秒数,可以简单理解成整数形式的时间点。而日期格式则是指可读性较好的时间表示形式,例如“202…

    JavaScript 2023年5月27日
    00
  • 使用JavaScript解析URL的方法示例

    下面我就来详细讲解一下“使用JavaScript解析URL的方法示例”的完整攻略。 什么是URL? 在讲解解析URL的方法之前,我们需要先了解一下什么是URL。URL(Uniform Resource Locator)是指统一资源定位符,简单来说就是我们用来表示资源在网络上位置的方法。URL包含了一些组成部分,例如:协议、域名、端口号、路径、查询参数等等。 …

    JavaScript 2023年5月27日
    00
  • js实现点击文本框显示日期选择器特效代码分享

    下面是详细的攻略: 1. 概述 日期选择器是网页开发中经常用到的功能,可以方便用户选择日期。在前端开发中,我们可以使用 JavaScript 实现一个点击文本框显示日期选择器的特效。下面将介绍具体的实现方法。 2. 实现步骤 2.1 HTML 结构 首先,在 HTML 中需要创建一个文本框和显示日期的容器。代码如下: <label for="…

    JavaScript 2023年5月27日
    00
  • 在网页中使用document.write时遭遇的奇怪问题

    使用document.write()方法在网页中输出内容是一种常见的做法。但在某些情况下,使用该方法可能会导致奇怪的问题出现。这些问题主要与网页渲染和JavaScript执行顺序有关。 下面是避免这些问题的一些攻略: 在DOMContentLoaded事件触发后再使用document.write() 当浏览器加载完DOM树后,会触发DOMContentLoa…

    JavaScript 2023年5月28日
    00
  • 20个JS简写技巧提升工作效率

    20个JS简写技巧提升工作效率 JS是一种强大的编程语言。但如果不掌握一些简写技巧,我们的开发效率可能会大打折扣。在此,我将介绍一些JS的简写技巧,以帮助您更高效地编写代码。 1. 使用箭头函数 箭头函数是ECMAScript6中的一个新特性,用于简化函数的书写。我们可以使用箭头函数来替代传统的函数表达式语法。例如: 传统函数表达式: const add =…

    JavaScript 2023年6月10日
    00
  • 深入理解JavaScript单体内置对象

    深入理解JavaScript单体内置对象 JavaScript 的单体内置对象是指在全局作用域中提供的那些对象,例如 String、Array、Object、Math、Date 等等。掌握这些内置对象的特点和方法,可以帮助我们更有效地编写 JavaScript 代码。下面就是深入理解 JavaScript 单体内置对象的攻略。 了解每个内置对象的定义和用途 …

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