JavaScript正则表达式验证身份证号码是否合法(两种方法)

下面是详细的攻略:

一、什么是正则表达式

正则表达式是用来匹配字符串中字符组合的模式。JavaScript中使用RegExp对象来表示正则表达式。

正则表达式由两部分组成:模式和标志。

模式是用来描述待匹配字符组合的模板,模板中可以包含字符、数字、特殊字符以及一些预定义字符集等等,详情可参考常用的预定义字符集

标志用于指定查找模式的选项,包括i(不区分大小写)、g(全局匹配)和m(多行匹配)等。

二、JavaScript正则表达式验证身份证号码是否合法

JavaScript中可以使用正则表达式来验证身份证号码是否合法。下面分别介绍两种验证身份证号码的方法。

1.方法一

方法一是直接使用正则表达式来验证身份证号码。

下面是示例代码:

function validateIdCard(idCard) {
  var reg = /(^\d{15}$)|(^\d{17}([0-9]|X)$)/;
  if (reg.test(idCard) === false) {
    return false;
  } else {
    return true;
  }
}

上述代码中创建了一个正则表达式/(^\d{15}$)|(^\d{17}([0-9]|X)$)/,其含义如下:

  • (^\d{15}$)表示匹配15位数字;
  • |(^\d{17}([0-9]|X)$)表示或者匹配17位数字或大写字母“X”。

在调用该函数时,参数idCard为待验证的身份证号码字符串。该函数返回布尔值,如果身份证号码不合法则返回false,否则返回true。

2.方法二

方法二是使用身份证号码的校验规则来验证身份证号码。

下面是示例代码:

function validateIdCard(idCard) {
  // 加权因子
  var weightedFactors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  // 校验码
  var checkCodes = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
  // 待验证号码的长度和校验位数
  var idCardLength = idCard.length;
  var checkBit = idCard.substr(idCardLength - 1, 1); // 校验位

  // 如果输入的身份证号码不合法,就直接返回false
  if (idCardLength != 18 || isNaN(parseInt(checkBit))) {
    return false;
  }

  // 计算校验位
  var sum = 0;
  for (var i = 0; i < idCardLength - 1; i++) {
    var num = parseInt(idCard.substr(i, 1));
    sum += num * weightedFactors[i];
  }
  var mod = sum % 11;
  var checkCode = checkCodes[mod];

  // 验证校验位
  if (checkBit.toUpperCase() != checkCode) {
    return false;
  } else {
    return true;
  }
}

上述代码中,首先定义了加权因子weightedFactors和校验码checkCodes。然后根据待验证号码的长度和校验位数,判断该号码是否合法。接着计算校验位并验证其正确性,最后返回布尔值。

三、示例说明

下面是两个示例,分别使用上述两种验证方法来验证身份证号码是否合法。

示例一

var idCard = "610422198903011234";
if (validateIdCard(idCard)) {
  console.log(idCard + " is valid.");
} else {
  console.log(idCard + " is invalid.");
}

输出结果为:610422198903011234 is valid.,说明该身份证号码是合法的。

示例二

var idCard = "61042219890301123X";
if (validateIdCard(idCard)) {
  console.log(idCard + " is valid.");
} else {
  console.log(idCard + " is invalid.");
}

输出结果为:61042219890301123X is valid.,说明该身份证号码是合法的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript正则表达式验证身份证号码是否合法(两种方法) - Python技术站

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

相关文章

  • 详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结

    让我来为你详细讲解“详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结”。 1. 确认数据更新 首先,如果你发现Vue数据更新了但页面没有更新,应该先确保数据确实发生了改变。可以使用一些 Vue.js 开发者工具(比如 vue-devtools)来检查组件的数据是否确实发生了变化。 2. 检查 Vue 模板语法 在 Vue 模板语法中,有些写法…

    JavaScript 2023年6月11日
    00
  • 解析ajaxFileUpload 异步上传文件简单使用

    解析ajaxFileUpload 异步上传文件简单使用攻略 异步上传文件简介 在传统的表单提交中,如果需要上传文件,则需要重新加载整个页面,用户体验并不好,而且上传大文件还会影响页面的响应速度。而异步上传则是采用ajax技术,实现上传文件的同时不刷新整个页面,从而提升用户体验。 ajaxFileUpload 简介 在实现异步上传功能的过程中,ajaxFile…

    JavaScript 2023年6月11日
    00
  • 微信小程序返回上一页的各种方法实例

    微信小程序返回上一页的各种方法实例 在微信小程序中,返回上一页是开发过程中经常会涉及到的一个需求。本文将详细讲解微信小程序中返回上一页的各种方法,并提供两个示例说明。 方法一:调用微信提供的API 微信小程序提供了一个 wx.navigateBack() 方法用于返回上一页,该方法可接受一个参数,表示返回的层数,默认值为1,即返回上一页。 示例代码如下: w…

    JavaScript 2023年6月11日
    00
  • javascript String 的扩展方法集合

    下面是关于“javascript String 的扩展方法集合”的完整攻略。 标准的 String 方法 JavaScript 中的 String 拥有许多标准的方法,例如 charAt()、substr()、slice()、toUpperCase() 等等。这些方法可以在 MDN 上找到详细的文档说明和使用示例。 扩展的 String 方法 除了标准的方法…

    JavaScript 2023年5月27日
    00
  • JS如何把字符串转换成json

    将字符串转换成JSON格式的数据是JavaScript中一种非常常见的操作,通常是用来将服务器端的数据转换成JavaScript能够使用的方式。以下是将字符串转换成JSON数据的完整攻略: 1. 使用JSON.parse方法 JSON.parse()方法可以将一个JSON字符串转换成相应的JavaScript对象。 const jsonString = ‘{…

    JavaScript 2023年5月27日
    00
  • javascript 基础篇1 什么是js 建立第一个js程序

    我来分享一下 “JavaScript 基础篇1:什么是 JavaScript?建立第一个 JavaScript 程序” 的完整攻略。 什么是 JavaScript? JavaScript 是一种高级编程语言,用于创建交互式网页和网页应用程序。它是一种脚本语言,意味着你不需要为了编写代码而拥有庞大的开发环境。 JavaScript 非常流行,现在可以在几乎所有…

    JavaScript 2023年5月27日
    00
  • js实现3D粒子酷炫动态旋转特效

    实现3D粒子酷炫动态旋转特效,需要以下几个步骤: 1.创建canvas画布和粒子对象数组;2.为粒子对象添加随机坐标、颜色以及速度;3.绘制粒子,并实现动态旋转效果;4.根据屏幕大小更新粒子位置。 下面,我将详细解释每个步骤并且提供具体的代码示例。 创建canvas画布和粒子对象数组。 首先,我们需要创建一个HTML文件,添加一张背景图片,然后再创建一个ca…

    JavaScript 2023年6月10日
    00
  • JS实现文件动态顺序载入的方法

    当需要在网页中引用多个JS文件时,如果按照常规方式直接引用,可能会因为文件之间的依赖关系导致错误。这时就需要使用JS实现文件动态顺序载入的方法。以下是实现该方法的攻略: 1. 动态创建script标签 使用JS动态创建script标签,将需要使用的JS文件依次插入到HTML文档中。每插入一个文件就为其绑定一个“onload”事件,在JS文件载入完成后触发该事…

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