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

yizhihongxing

下面是详细的攻略:

一、什么是正则表达式

正则表达式是用来匹配字符串中字符组合的模式。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日

相关文章

  • 使用requestAnimationFrame实现js动画性能好

    使用requestAnimationFrame实现js动画的优点是可以避免过多使用setTimeout或setInterval造成的页面卡顿、CPU过度占用等问题,从而保证动画的流畅度和性能。以下是具体操作步骤: 准备工作 首先需要在代码中声明一个全局变量 requestId 用于记录动画的请求ID。然后编写动画函数,此函数需要接收一个时间参数。 let r…

    JavaScript 2023年6月10日
    00
  • WebSocket与Sock.js介绍

    WebSocket与Sock.js介绍 今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管管,团队建设 有参考作用 , 您可能感兴趣的文章: 领导人怎样带领好团队构建创业公司突击小团队国际化环境下系统架构演化微服务架构设计视频直播平台的系统架构演化微服务与Docker介绍Docker与CI持续集成/CD互联…

    JavaScript 2023年4月24日
    00
  • JavaScript中关于Object.create()的用法

    首先我们来讲一下Object.create()方法。它是JavaScript中一个非常重要的方法,用于创建一个新对象,同时可以将其原型指向另一个对象,也可以添加新的属性和方法。下面就来详细介绍一下Object.create()的用法: 基本语法 Object.create()方法的基本语法如下: Object.create(proto[, propertie…

    JavaScript 2023年5月27日
    00
  • JavaScript CollectGarbage函数案例详解

    介绍 CollectGarbage 函数前,我们需要先了解一下垃圾回收机制。JavaScript 是一种有垃圾回收机制的语言,当我们在代码中创建一个对象,如果该对象不再被引用,那么它就成为了一份“垃圾”,垃圾回收机制会被触发,将其回收。这样可以有效地避免内存泄漏等问题。 CollectGarbage 函数是 JavaScript 的一种垃圾回收函数,可以手动…

    JavaScript 2023年6月11日
    00
  • GoLang中Json Tag用法实例总结

    让我给您详细讲解“GoLang中Json Tag用法实例总结”的完整攻略。 什么是Json Tag 在Go语言中,如果我们需要对struct进行序列化或反序列化,需要使用encoding/json包。这个包可用性很强大,可以让我们很方便的对struct进行Json和Go语言之间的转换。而在JSON格式中,json tag就显得尤为重要。Json tag是在结…

    JavaScript 2023年5月27日
    00
  • 纯JavaScript实现的兼容各浏览器的添加和移除事件封装

    以下是实现“纯JavaScript实现的兼容各浏览器的添加和移除事件封装”的完整攻略: 一、为什么要封装添加和移除事件的方法? 当我们在实现网页的交互效果时,通常需要使用JavaScript来操作DOM元素并添加相应的事件来触发我们所需的功能。JavaScript提供了添加事件监听器的方法,如addEventListener(),但不同浏览器实现这一方法的方…

    JavaScript 2023年6月10日
    00
  • js正则test匹配的踩坑及解决

    下面是“js正则test匹配的踩坑及解决”的完整攻略。 1. 什么是正则表达式 正则表达式(Regular Expression)是一种用来描述特定模式的字符串,在JavaScript中通常用来匹配字符串中的字符模式。正则表达式在处理字符串时非常实用,常常用于表单验证、文本替换等等。其中,RegExp对象是用来支持正则表达式的JavaScript内置对象。 …

    JavaScript 2023年6月10日
    00
  • 详谈js的变量提升以及使用方法

    当JavaScript执行代码时,会在执行前将变量和函数定义提升到当前作用域的顶部。这个过程就叫做变量提升。变量提升可以让我们在变量或函数定义之前使用它们,但需要注意它们的赋值不会提升。 变量提升 JavaScript 中变量提升为以下代码表现: console.log(myVar); // 输出 undefined var myVar = "He…

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