코드 사본은 다음과 같습니다.
// HTML 페이지에는 ID Identity_Card가있는 입력 입력 상자가 있어야하며 ID IPMESSAGE가있는 ID 카드가 잘못되었거나 정확하거나 프롬프트가있는 경우 메시지를 프롬프트 할 장소가 있어야합니다.
<cript>
// ID CARD 확인
$ (document) .ready (function () {
$ ( "#Identity_card"). Change (function () {
var idcard = $ (this) .val ();
checkdate (idcard);
});
});
//신분증
함수 checkdate (idcard) {
var socialno = idcard;
if (socialno == "")
{{
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( "ID 번호를 입력 할 수 없습니다!");
반환 (거짓);
}
if (SocialNo.Length! = 15 && SocialNo.Length! = 18)
{{
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( "입력 ID 번호의 형식이 잘못되었습니다!");
반환 (거짓);
}
var 지역 = {11 : "베이징", 12 : "Tianjin", 13 : "Hebei", 14 : "Shanxi", 15 : "Inner Mongolia", 21 : "Liaoning", 22 : "Jilin", 23 : " Heilongjiang ", 31 :"Shanghai ", 32 :"Jiangsu ", 33 :"Zhejiang ", 34 :"Anhui ", 35 :"Fujian ", 36 :"Jiangxi ", 37 :"Shandong ", 41 :"Henan " , 42 : "Hubei", 43 : "Hunan", 44 : "Guangdong", 45 : "Guangxi", 46 : "Hainan", "Chongqing", 51 : "Sichuan", 52 : "Guizhou", 53 : "Yunnan", 54 : "Tibet", 61 : "Shaanxi", 62 : "Gansu", 63 : "Qinghai", 64 : "Ningxia", 65 : "Xinjiang", 71 : "Taiwan", 81 : " 홍콩 ", 82 :"마카오 ", 91 :"외국 "};
if (area [parseint (socialno.substr (0,2))] == null) {
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
경고 ( "부적절한 ID 번호 (불법 영역)!");
반환 (거짓);
}
if (socialno.length == 15)
{{
패턴 =/^/d {15} $/;
if (pattern.exec (socialno) == null) {
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
경고 ( "15 자리 ID 번호는 숫자가되어야합니다!");
반환 (거짓);
}
var birth = parseint ( "19" + SocialNo.Substr (6,2));
var month = socialno.substr (8,2);
var day = parseint (Socialno.Substr (10,2));
스위치 (월) {
케이스 '01':
케이스 '03':
케이스 '05':
케이스 '07':
케이스 '08':
사례 '10':
사례 '12':
if (day> 31) {
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( '입력 ID 번호는 올바른 형식이 아닙니다!');
거짓을 반환합니다.
}
부서지다;
케이스 '04':
케이스 '06':
케이스 '09':
사례 '11':
if (Day> 30) {
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( '입력 ID 번호는 올바른 형식이 아닙니다!');
거짓을 반환합니다.
}
부서지다;
케이스 '02':
if ((출생 % 4 == 0 && birth % 100! = 0) || 출생 % 400 == 0) {
if (day> 29) {
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( '입력 ID 번호는 올바른 형식이 아닙니다!');
거짓을 반환합니다.
}
} 또 다른 {
if (day> 28) {
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( '입력 ID 번호는 올바른 형식이 아닙니다!');
거짓을 반환합니다.
}
}
부서지다;
기본:
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( '입력 ID 번호는 올바른 형식이 아닙니다!');
거짓을 반환합니다.
}
var nowyear = new date (). getyear ();
if (nowyear -parseint (birth) <15 || nowyear -parseint (birth)> 100) {
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( '입력 ID 번호는 올바른 형식이 아닙니다!');
거짓을 반환합니다.
}
$ ( '#ipmessage'). html ( 'pass!');
반환 (true);
}
var wi = 새로운 배열 (
7,9,10,5,8,4,2,1,6,
3,7,9,10,5,8,4,2,1
);
var lsum = 0;
var nnum = 0;
var nchecksum = 0;
for (i = 0; i <17; ++ i)
{{
if (socialno.charat (i) < '0'|| socialno.charat (i)> '9')
{{
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( "입력 ID 번호의 형식이 잘못되었습니다!");
반환 (거짓);
}
또 다른
{{
nnum = socialno.charat (i) - '0';
}
lsum += nnum * wi [i];
}
if (socialno.charat (17) == 'x'|| socialno.charat (17) == 'x')
{{
LSUM += 10*WI [17];
}
else if (socialno.charat (17) < '0'|| socialno.charat (17)> '9')
{{
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( "입력 ID 번호의 형식이 잘못되었습니다!");
반환 (거짓);
}
또 다른
{{
lsum += (Socialno.charat (17) - '0') * wi [17];
}
if ((LSUM % 11) == 1)
{{
$ ( '#ipmessage'). html ( 'pass!');
진실을 반환하십시오.
}
또 다른
{{
$ ( '#ipmessage'). html ( '입력 ID 번호의 형식은 올바르지 않으므로 15 ~ 18 자리의 ID 번호 여야합니다);
ALERT ( "입력 ID 번호의 형식이 잘못되었습니다!");
반환 (거짓);
}
}
</스크립트>