JS для более строгой проверки идентификационного номера
Автор:Eve Cole
Время обновления:2009-06-20 16:17:52
<html>
<голова>
<title>Проверка правильности идентификационного номера</title>
</голова>
<тело>
Введите свой идентификационный номер:<input type="text" size="20" id="asidinput" /><input type="button" value="Verify" onclick="alert(cidInfo(asidinput.value))" />
<скрипт>
var aCity={11:"Пекин",12:"Тяньцзинь",13:"Хэбэй",14:"Шаньси",15:"Внутренняя Монголия",21:"Ляонин",22:"Цзилинь",23:" Хэйлунцзян", 31: "Шанхай", 32: "Цзянсу", 33: "Чжэцзян", 34: "Аньхой", 35: "Фуцзянь", 36: "Цзянси", 37: "Шаньдун", 41: "Хэнань" , 42: «Хубэй», 43: «Хунань», 44: «Гуандун», 45: «Гуанси», 46: «Хайнань», 50: «Чунцин», 51: «Сычуань», 52: «Гуйчжоу», 53 : «Юньнань», 54: «Тибет», 61: «Шэньси», 62: «Ганьсу», 63: «Цинхай», 64: «Нинся», 65: «Синьцзян», 71: «Тайвань», 81:» Гонконг», 82: «Макао», 91: «За рубежом»}
функция cidInfo(sId){
вар iSum=0
вар информация=""
if(!/^d{17}(d|x)$/i.test(sId)) возвращает false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return «Ошибка: недопустимая территория»;
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=новая дата(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate())) return "Ошибка: недопустимый день рождения";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return «Ошибка: недопустимый номер сертификата»;
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"Мужской":"Женский")
}
</скрипт>
</тело>
</html>