身份证为15位或者18位,15位的全为数字,18位的前17位为数字,最后一位为数字或者大写字母”X“。
与之匹配的正则表达式:
(^\d{15}$)|(^\d{17}([0-9]|X)$)
下面以Javascript为例进行说明:
function isIdCardNo(num) {
num = num.toUpperCase();
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
if ( !(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)) )
{
alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。');
return false;
};
}