以下是使用 JavaScript 实现的身份证号码正则表达式校验函数:
function validateIdCard(idCard) {
// 身份证号码正则表达式
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(idCard);
}
在上述代码中,^\d{15}$
匹配 15 位数字的身份证号码,^\d{18}$
匹配 18 位数字的身份证号码,^\d{17}(\d|X|x)$
匹配 17 位数字加上最后一位是数字或大写 X
或小写 x
的身份证号码
console.log(validateIdCard('123456789012345')); // 输出: false
console.log(validateIdCard('123456789012345678')); // 输出: true
console.log(validateIdCard('12345678901234567X')); // 输出: true
在 Python 中,
import re
def validate_id_card(id_card):
pattern = re.compile(r'(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)')
return bool(pattern.match(id_card))
print(validate_id_card('123456789012345')) # 输出: False
print(validate_id_card('123456789012345678')) # 输出: True
print(validate_id_card('12345678901234567X')) # 输出: True