Примечание: это использует грубую проверку даты с помощью чистого 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
И вы можете лавировать на следующий за полной проверки ID:
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
Я тестировал этот образец и не работал, потому что не проверял високосные годы. – user3272405