如何用JavaScript正则表达式精确验证身份证号码格式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计297个文字,预计阅读时间需要2分钟。
javascript// 正则表达式用于匹配15位或18位身份证号码const idCardRegex=/^(\d{15}|\d{17}(\d|X)$)/;
// 测试用例const testCases=[ 123456789012345, // 15位 1234567890123456, // 错误格式 123456789012345X, // 18位 1234567890123456X // 错误格式];
// 测试正则表达式testCases.forEach(testCase=> { console.log(`Test case: ${testCase} - Match: ${idCardRegex.test(testCase)}`);});
身份证为15位或者18位,15位的全为数字,18位的前17位为数字,最后一位为数字或者大写字母”X“。
与之匹配的正则表达式:
(^\d{15}$)|(^\d{17}([0-9]|X)$)
下面以Javascript为例进行说明:
functionisIdCardNo(num) { num = num.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 if ( !(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)) ) { alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。
本文共计297个文字,预计阅读时间需要2分钟。
javascript// 正则表达式用于匹配15位或18位身份证号码const idCardRegex=/^(\d{15}|\d{17}(\d|X)$)/;
// 测试用例const testCases=[ 123456789012345, // 15位 1234567890123456, // 错误格式 123456789012345X, // 18位 1234567890123456X // 错误格式];
// 测试正则表达式testCases.forEach(testCase=> { console.log(`Test case: ${testCase} - Match: ${idCardRegex.test(testCase)}`);});
身份证为15位或者18位,15位的全为数字,18位的前17位为数字,最后一位为数字或者大写字母”X“。
与之匹配的正则表达式:
(^\d{15}$)|(^\d{17}([0-9]|X)$)
下面以Javascript为例进行说明:
functionisIdCardNo(num) { num = num.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 if ( !(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)) ) { alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。

