js 身份证验证正则表达式

js 身份证验证正则表达式

js 身份证验证正则表达式

身份证是每个国家都有的重要身份标识,而在中国,身份证号是十分重要的标识之一。身份证号分为18位和15位,其中18位身份证号由17位数字和1位校验码组成,15位身份证号由15位数字组成。

在实际开发中,我们有时会需要对身份证号进行验证,以确保用户输入的身份证号格式正确。而在JavaScript中,可以使用正则表达式来进行身份证号的验证。

身份证号的规则

在中国,身份证号的规则如下:

  • 18位身份证号:由17位数字和1位校验码组成,校验码的计算方法可以参考百度百科
  • 15位身份证号:由15位数字组成,是早期的版本,在现在的使用中已经逐渐不被采用。

身份证号中每个位置的含义可以参考百度百科

JavaScript身份证验证正则表达式

下面是一个用于验证18位身份证号的正则表达式:

const idCardReg = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dXx]$/;

这个正则表达式会匹配符合中国18位身份证号规则的字符串。其中:

  • ^[1-9]\d{5}:以1-9开头,后面跟5个数字。
  • (19|20)\d{2}:以19或20开头,后面是4个数字。
  • (0[1-9]|1[0-2]):月份,01-12之间。
  • (0[1-9]|[1-2]\d|3[0-1]):日期,01-31之间。
  • \d{3}:三位顺序码。
  • [\dXx]:校验码,可以是数字0-9或字母X或x。

示例代码

下面是一个简单的JavaScript示例代码,演示如何使用上面的正则表达式来验证身份证号:

const idCardReg = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dXx]/;

function validateIdCard(idCard) {
    if (idCardReg.test(idCard)) {
        console.log(`{idCard} 是有效的身份证号`);
    } else {
        console.log(`${idCard} 不是有效的身份证号`);
    }
}

validateIdCard('110101199003078900'); // 有效的身份证号
validateIdCard('11010119900307800X'); // 有效的身份证号
validateIdCard('11010119900307X00'); // 无效的身份证号
validateIdCard('1101011990030789X1'); // 无效的身份证号

在上面的示例代码中,我们定义了一个validateIdCard函数,用于验证身份证号是否符合规则。然后我们对不同类型的身份证号进行验证,并输出验证结果。

运行结果

110101199003078900 是有效的身份证号
11010119900307800X 是有效的身份证号
11010119900307X00 不是有效的身份证号
1101011990030789X1 不是有效的身份证号

从运行结果可以看出,我们通过正则表达式成功验证了身份证号的有效性。

总结

通过本文的介绍,我们了解了身份证号的规则,以及如何使用JavaScript正则表达式来验证身份证号。在实际开发中,可以根据需求定制不同的正则表达式,以实现灵活的身份证验证功能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程