javascript验证身份证号

yizhihongxing

下面是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日

相关文章

  • 微信小程序实现底部弹出框

    微信小程序实现底部弹出框的方法有多种,其中较为简便的一种是利用wepy-ui组件库中的popup组件来实现。wepy-ui是一套专为wepy框架打造的组件库,若使用其他框架或原生小程序不适用。以下是具体步骤: 1. 安装wepy-ui 使用wepy-ui组件库之前必须要先安装,可以通过npm命令安装: npm i wepy-ui -S 2. 引入popup组…

    JavaScript 2023年6月11日
    00
  • JavaScript数字和字符串转换示例

    JavaScript 数字和字符串转换是开发过程中非常常见的操作之一。本攻略将带您了解如何在 JavaScript 中进行数字和字符串间的转换。 数字转字符串 在 JavaScript 中可以使用 toString() 方法将数字转换为字符串。 let num = 123; let str = num.toString(); console.log(type…

    JavaScript 2023年5月28日
    00
  • JavaScript中使用import 和require打包后实现原理分析

    JavaScript中使用import和require打包后实现原理分析: 在JavaScript中使用import和require加载模块可以使代码模块化,提高代码的可读性和重用性。这两种方式底层实现原理存在差异。 require的实现原理 require是Node.js原生提供的模块加载器。当代码中出现require语句时,Node.js会自动进行模块查…

    JavaScript 2023年5月27日
    00
  • JavaScript字符串包含问题

    JavaScript字符串包含问题是指在一个字符串中,查找是否包含另一个字符串的问题。通常使用indexOf()或includes()方法来解决该问题。 使用indexOf()方法 indexOf()方法返回字符串中指定字符或字符串第一次出现的位置。返回值为-1表示未找到。可以通过以下方式使用它来判断一个字符串是否包含另一个字符串: let str = ‘h…

    JavaScript 2023年5月28日
    00
  • JavaScript ES6的函数拓展

    下面是关于JavaScript ES6的函数拓展的详细攻略。 什么是函数拓展 函数拓展是ECMAScript 6(简称ES6)中引入的一些新特性,可以让我们编写更简洁、易读、易维护的函数代码,并为函数提供了更多的灵活性和可扩展性。 ES6函数拓展的特点 ES6函数拓展具有以下几个特点: 箭头函数 默认参数 剩余参数 扩展运算符 接下来我们将分别讲解这些特点,…

    JavaScript 2023年5月18日
    00
  • js 优化次数过多的循环 考虑到性能问题

    对于“js 优化次数过多的循环 考虑到性能问题”的完整攻略,以下是一些常用的优化方法和示例说明: 1. 尽量减少循环内部的操作 在循环中尽量减少操作,包括数据类型转换、数组访问和函数调用等,因为这些操作都需要消耗额外的资源,增加程序的运行成本。如果需要在循环内部进行这类操作,可以将其放到外面的变量里面计算,从而减少循环内部的操作,进而提高程序的性能。 例如,…

    JavaScript 2023年5月28日
    00
  • JavaScript中常见的继承方式总结

    JavaScript中常见的继承方式主要包括原型链继承、构造函数继承、组合继承、寄生组合继承、ES6类继承等,下面将详细介绍这些继承方式。 原型链继承 原型链继承是JavaScript中最为普遍的继承方式,它的基本思想是让一个构造函数的原型对象作为另一个构造函数的实例的原型,从而实现继承。其实现方式如下: function Parent() { this.n…

    JavaScript 2023年5月27日
    00
  • ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析

    ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析 字符串 模板字符串 ES6引入了模板字符串,可以使用反引号(“)来定义字符串,也可以在其中使用大括号({})来插入变量或表达式。 示例: const name = "张三"; const age = 18; console.log(`我的名字是${name},今年${age}岁…

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