我需要一个如何验证古巴身份证格式的身份证号码的示例。我正在寻找html5中的正则表达式验证。
格式说明:
Date of Birth (yymmdd) and 5 digits
There are 11 total digits.
示例:89103024100
答案 0 :(得分:1)
注意:这是通过纯RegEx使用粗略日期验证(即任何月份最长可达31天):
[0-9]{2}(?:0[0-9]|1[0-2])(?:0[1-9]|[12][0-9]|3[01])[0-9]{5}
您可以通过JavaScript测试字符串是否匹配,如下所示:
/[0-9]{2}(?:0[0-9]|1[0-2])(?:0[1-9]|[12][0-9]|3[01])[0-9]{5}/.test('82061512345');
// returns true because it is valid
如果您需要真正的日期验证,我会执行以下操作:
var id1 = '82061512345'; // example valid id
var id2 = '82063212345'; // example invalid id
function is_valid_date(string) {
var y = id.substr(0,2); // 82 (year)
var m = id.substr(2,2); // 06 (month)
var d = id.substr(4,2); // 15/32 (day)
if (isNaN(Date.parse(y + '-' + m + '-' + d)) {
return false;
} else {
return true;
}
}
is_valid_date(id1); // returns true
is_valid_date(id2); // returns false
您可以使用以下内容进行完整的身份验证:
function is_valid_id(id) {
if (/[0-9]{11}/.test(id) && is_valid_date(id)) {
return true;
} else {
return false;
}
}
is_valid_id(id1); // returns true
is_valid_id(id2); // returns false
答案 1 :(得分:0)
/(\d{2}((0[1-9]|1[012])(0[1-9]|1\d|2[0-8])|(0[13456789]|1[012])
(29|30)|(0[13578]|1[02])31)|([02468][048]|[13579][26])0229)[0-9]{5}/.test('00023012345');
return false
//不是闰年
/(\d{2}((0[1-9]|1[012])(0[1-9]|1\d|2[0-8])|(0[13456789]|1[012])
(29|30)|(0[13578]|1[02])31)|([02468][048]|[13579][26])0229)[0-9]{5}/.test('00022912345');
return true
//闰年