Ãâó : http://jsguide.net/
°Ë»ç ¿ø¸® (¾Ë°í¸®Áò)
Áֹεî·Ï¹øÈ£´Â ¾ÕÀÚ¸®°¡ 6ÀÚ¸®ÀÇ ¼ýÀÚ·Î ±¸¼ºµÇ¸ç, ÅÂ¾î³ ³¯ÀÇ ¿¬µµ, ¿ù, ÀÏÀ» ³ªÅ¸³»´Â ¼ýÀÚÀÌ´Ù. µÞÀÚ¸®´Â ÀϷùøÈ£·Î¼, 7ÀÚ¸®·Î ±¸¼ºµÇ¸ç ù¹ø° ¼ýÀÚ´Â ¼ºº°À» ³ªÅ¸³»´Â Àǹ̸¦ °¡Áö°í ÀÖ´Ù. ±¸ºÐÀÚÀÎ '-' ±âÈ£¸¦ »©¸é ÃÑ 13ÀÚ¸®ÀÇ ¼ýÀÚ·Î ±¸¼ºµÇ¸ç, Á¤»óÀûÀÎ ¹øÈ£ÀÎÁö¸¦ °¡·Á³¾ ¼ö ÀÖ´Â ÀÚüÀûÀÎ Á¤º¸¸¦ ´ã°í ÀÖ´Ù.
Á¤»óÀûÀÎ Áֹεî·Ï¹øÈ£ÀÎÁö¸¦ ÆǺ°Çϱâ À§Çؼ´Â ¸ÕÀú Áֹεî·Ï¹øÈ£ ¸Ç µÞÀÚ¸®¸¦ Á¦¿ÜÇÑ °¢ ÀÚ¸´¼öÀÇ ¼ýÀڵ鿡 °¢°¢ ÁöÁ¤µÈ ¼ýÀÚµéÀ» °öÇؼ, ÀÌ °á°úµéÀ» ´õÇØ¾ß ÇÑ´Ù. °¢ ÀÚ¸´¼ö¿¡ ÁöÁ¤µÈ ½Â¼öµéÀº ´ÙÀ½°ú °°´Ù. (¾Æ·¡¿¡¼ ÁøÇÏ°Ô Ç¥½ÃµÈ ÇàÀº Áֹεî·Ï¹øÈ£¸¦ ³ªÅ¸³½´Ù)
|
1 |
2 |
3 |
4 |
5 |
6 |
- |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
X |
2 |
3 |
4 |
5 |
6 |
7 |
|
8 |
9 |
2 |
3 |
4 |
5 |
|
|
|
n1 |
n2 |
n3 |
n4 |
n5 |
n6 |
|
n7 |
n8 |
n9 |
n10 |
n11 |
n12 |
|
°¢ ÀÚ¸´¼ö¿¡ ÁöÁ¤µÈ ½Â¼öµéÀ» ´õÇÑ °ªÀ» NÀ̶ó°í Çϸé,
N = n1 + n2 + n3 + ... + n12
NÀ» 11·Î ³ª´« ³ª¸ÓÁö¸¦ 11¿¡¼ »« ¼ö°¡ Áֹεî·Ï¹øÈ£ ¸¶Áö¸· ÀÚ¸´¼ö¿Í ÀÏÄ¡Çϸé Á¤»óÀûÀÎ Áֹεî·Ï¹øÈ£ÀÌ´Ù.
11 - (N % 11) = ¸¶Áö¸· ÀÚ¸´¼ö
NÀÇ °ªÀÌ 11·Î ³ª´©¾î ¶³¾îÁö°Å³ª ³ª¸ÓÁö°¡ 1À̶ó¸é À§ ½ÄÀÇ °ªÀº 10 ¶Ç´Â 11ÀÌ µÈ´Ù. ¸¶Áö¸· ÀÚ¸´¼ö´Â 1ÀÚ¸®À̱⠶§¹®¿¡ ÀÌ·± °æ¿ì¿¡´Â ºñ±³ÇÒ ¶§ °°Áö ¾ÊÀº °ÍÀ¸·Î 󸮵DZ⠶§¹®¿¡ À§ ½ÄÀ» ´Ù½Ã Çѹø 10À¸·Î ³ª´©¾î ±× ³ª¸ÓÁö¸¦ ÃëÇÏ¿© ¸¶Áö¸· ÀÚ¸´¼ö¿Í ºñ±³ÇØ¾ß ÇÑ´Ù. µû¶ó¼, À§ ½ÄÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇØ¾ß ÇÑ´Ù.
(11 - (N % 11)) % 10 = ¸¶Áö¸· ÀÚ¸´¼ö
±¸ Çö
Å×½ºÆ®¿ë ÀԷ¾ç½Ä
ÀÌÁ¦ Å×½ºÆ®¿ë ¹®¼¸¦ ¸ÕÀú ¸¸µé¾îº¸ÀÚ. Æû űװ¡ »ðÀÔµÈ HTMLÀÇ ÇüÅ·μ, Áֹεî·Ï¹øÈ£ ÀԷ¶õ°ú °Ë»ç ¹öÆ°¸¸À» ÁغñÇÑ´Ù. Áֹεî·Ï¹øÈ£´Â ÆíÀÇ»ó '-' ±âÈ£¸¦ Æ÷ÇÔÇÏ¿© ´ÜÀÏ ÀԷ¶õÀ¸·Î ¹Þ¾ÆµéÀÌ´Â °ÍÀ¸·Î ÇÑ´Ù.
<html>
<head><title>Áֹεî·Ï¹øÈ£ °Ë»ç</title>
</head>
<body>
<h1>Áֹεî·Ï¹øÈ£ °Ë»ç</h1>
<form onSubmit="chkresno(this.resno.value);return false">
Áֹεî·Ï¹øÈ£ <input type="text" name="resno">
<input type="submit" value="Áö±Ý °Ë»ç">
</form>
</body>
</html>
ÀÌ ¹®¼´Â ºê¶ó¿ìÀú »óÀÇ °Ë»ç¸¸À» ¸ñÀûÀ¸·Î ÇϹǷÎ, onSubmit() À̺¥Æ® Çڵ鷯¿¡¼´Â ÆíÀÇ»ó ¹«Á¶°Ç return false·Î ÆûÀÇ Àü¼ÛÀ» Ãë¼ÒÇÏ¿´´Ù. °Ë»ç ·çƾÀº chkresno()À̸ç, Áֹεî·Ï¹øÈ£ ÀԷ°ªÀÎ resno Ç׸ñÀÇ °ªÀ» Á÷Á¢ ¸Å°³º¯¼ö·Î Àü´ÞÇÏ¿´´Ù.
±âº» ÀÔ·ÂÇüÅÂÀÇ °Ë»ç
ÀÔ·ÂµÈ ³»¿ëÀÇ °Ë»ç´Â ¸ÕÀú ÇüÅ °Ë»çºÎÅÍ ½ÃÀÛÇÑ´Ù. Áֹεî·Ï¹øÈ£ÀÇ Á¤ÇØÁø ÇüÅÂÀÎ ¼ýÀÚ 6ÀÚ¸®¿Í '-' ±âÈ£, ±×¸®°í µÚÀÌÀº ¼ýÀÚ 7ÀÚ¸®ÀÇ ÇüŸ¦ °¡Á®¾ß¸¸ ÇÑ´Ù. ÀÌ·¸°Ô Á¤ÇØÁø ÇüÅÂÀÇ ³»¿ëÀ» °Ë»çÇÏ´Â ÁÁÀº ¹æ¹ýÀ¸·Î´Â Á¤±ÔÇ¥Çö½ÄÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù.
function chkresno(resno) {
fmt = /^\d{6}-\d{7}$/;
if (!fmt.test(resno)) {
alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return;
}
alert("Á¤»óÀûÀÎ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù.");
}
Á¤±ÔÇ¥Çö½ÄÀº '/' ±âÈ£·Î ±× ½ÃÀÛ°ú ³¡À» ±¸ºÐÇÑ´Ù. '^' ±âÈ£´Â ÇØ´ç ±âÈ£ µÚ¿¡ ³ª¿À´Â Ç¥ÇöÀÌ Á¦ÀÏ Ã³À½¿¡ ³ª¿Í¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇϸç, '$' ±âÈ£´Â ÁöÁ¤µÈ Ç¥ÇöÀ¸·Î Á¾·áµÇ¾î¾ß ÇÔÀ» ³ªÅ¸³½´Ù. '\d' Áö½ÃÀÚ´Â ÁÖ¾îÁø Ç¥ÇöÀÌ ¼ýÀÚÀÓÀ» ³ªÅ¸³»°í, {n}ÀÇ Ç¥ÇöÀº ¾ÕÀÇ Áö½ÃÀÚ ¶Ç´Â ¹®ÀÚ°¡ ÁÖ¾îÁø °³¼ö¸¸Å ¹Ýº¹µÇ¾îÁø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. Á¤±ÔÇ¥Çö½Ä¿¡ ´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ ³»¿ëÀº ¸Å´º¾ó ¶Ç´Â ÂüÁ¶ »çÀÌÆ®ÀÇ ¿Â¶óÀÎ ¹®¼µéÀ» Âü°íÇϱ⠹ٶõ´Ù.
À§ÀÇ Á¤±ÔÇ¥Çö½ÄÀ» ÀÌ¿ëÇÑ °Ë»ç¹æ¹ýÀ¸·Î´Â Àüü ÀÚ¸´¼ö¿Í ÇüÅ¿¡ ´ëÇÑ °Ë»ç¸¦ ¼öÇàÇÒ ¼ö ÀÖÀ¸³ª, ¿©±â¼ ÇÑ°¡Áö °Ë»ç¸¦ ´õ ÇÏÀÚ¸é, Áֹεî·Ï¹øÈ£ÀÇ µÞºÎºÐ ùÀÚ¸®´Â ¼ºº°À» ³ªÅ¸³»´Â ¼ýÀڷμ, 1Àº ³²ÀÚ, 2´Â ¿©ÀÚ¸¦ °¡¸®Å²´Ù. (2000³âµµ ÀÌÈÄ Ãâ»ýÀÚÀÇ °æ¿ì¿¡´Â 3ÀÌ ³²ÀÚ, 4°¡ ¿©ÀÚÀÇ Àǹ̸¦ °¡Áø´Ù.) µû¶ó¼, ±â¿Õ °Ë»çÇÏ´Â ±è¿¡ µÞºÎºÐ ùÀÚ¸®°¡ 1 ºÎÅÍ 4 ±îÁöÀÇ ¼ýÀÚ¸¸ ÀԷµǾî¾ß ÇÔÀ» Á¤±ÔÇ¥Çö½ÄÀ» ÀÌ¿ëÇÏ¿© üũÇϵµ·Ï ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÏÀÚ.
function chkresno(resno) {
fmt = /^\d{6}-[1234]\d{6}$/;
if (!fmt.test(resno)) {
alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return;
}
alert("Á¤»óÀûÀÎ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù.");
}
ÀÔ·ÂµÈ ³¯Â¥ÀÇ À¯È¿¼º °Ë»ç
Áֹεî·Ï¹øÈ£ÀÇ ¾ÕºÎºÐÀº »ý³â¿ùÀÏÀ» ³ªÅ¸³»´Â 6ÀÚ¸®ÀÇ ÀÏ·ÃÀÇ ¼ýÀÚÀÌ´Ù. 6ÀÚ¸®ÀÇ ÀÏ·ÃÀÇ ¼ýÀÚ°¡ ½ÇÁ¦·Î Á¸ÀçÇÏÁö ¾ÊÀ¸¸é¼µµ Áֹεî·Ï¹øÈ£ÀÇ °Ë»ç·çƾÀ» ºüÁ®³ª°¥ ¼ö Àֱ⠶§¹®¿¡ ÀÌ·± °æ¿ì¸¦ Á¡°ËÇϱâ À§Çؼ´Â ¾ÕºÎºÐÀÇ ¼ýÀÚµéÀÌ ½ÇÁ¦·Î Á¸ÀçÇÏ´Â ³¯Â¥Àΰ¡ÀÇ ¿©ºÎ¸¦ ¹Ýµå½Ã Á¡°ËÇØ¾ß ÇÑ´Ù. (990229-1234567 ¶ó´Â °¡»óÀÇ Áֹεî·Ï¹øÈ£´Â 1999³â 2¿ù 29ÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ½¿¡µµ ºÒ±¸ÇÏ°í ³¯Â¥ üũ¸¦ ÇÏÁö ¾ÊÀº °æ¿ì¿¡´Â À¯È¿ÇÑ Áֹεî·Ï¹øÈ£¶ó°í ¿ÀÀ뵃 ¼ö ÀÖ´Ù.)
½ÇÁ¦·Î Á¸ÀçÇÏ´Â ÀÏÀÚÀÎÁö¸¦ °£´ÜÈ÷ ÆÇ´ÜÇϱâ À§Çؼ´Â ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ ±âº»À¸·Î Á¦°øÇÏ´Â Date() °´Ã¼ÀÇ »ý¼ºÀÚ¸¦ ÀÌ¿ëÇÏ¿© ÁÖ¾îÁø ³¯Â¥ Á¤º¸·Î Date °´Ã¼¸¦ »ý¼ºÇÑ ´ÙÀ½¿¡ ±× °´Ã¼°¡ °¡Áö´Â °ªÀÌ ¿ø·¡ °ª°ú ÀÏÄ¡ÇÏ´ÂÁö ºñ±³ÇÏ´Â °ÍÀ¸·Î °£´ÜÇÏ°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù. Date() »ý¼ºÀÚ´Â À߸øµÈ ÀÏÀÚÁ¤º¸·Î »ý¼ºµÇ¾úÀ» °æ¿ì¿¡´Â ÀÚµ¿À¸·Î Á¤»óÀûÀÎ ÀÏÀÚÁ¤º¸·Î ÀçÁ¶Á¤µÇ°Ô µÇ¾îÀÖ´Ù.
birthYear = (resno.charAt(7) <= "2") ? "19" : "20";
birthYear += resno.substr(0, 2);
birthMonth = resno.substr(2, 2) - 1;
birthDate = resno.substr(4, 2);
birth = new Date(birthYear, birthMonth, birthDate);
if ( birth.getYear() % 100 != resno.substr(0, 2) ||
birth.getMonth() != birthMonth ||
birth.getDate() != birthDate) {
alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return;
}
Checksum ÄÚµåÀÇ °è»ê°ú ºñ±³
ÀÌÁ¦ °¢ ÀÚ¸´¼öº° °ö¼ÀÀ» Çϱâ À§Çؼ, ¸ÕÀú Áֹεî·Ï¹øÈ£ °¢ ÀÚ¸´¼öµéÀ» ÇϳªÀÇ ¹è¿¿¡ ´ãµµ·Ï ÇÏ°Ú´Ù. '-' ±âÈ£´Â Á¦¿ÜÇÏ°í ³ª¸ÓÁö ¼ýÀڵ鸸 ±æÀÌ°¡ 13ÀÎ ¹è¿¿¡ ÀúÀåÇÑ´Ù.
buf = new Array(13);
for (i = 0; i < 6; i++) buf[i] = parseInt(resno.charAt(i));
for (i = 6; i < 13; i++) buf[i] = parseInt(resno.charAt(i + 1));
°¢ ÀÚ¸´¼ö º°·Î ÁöÁ¤µÈ ½Â¼öµéµµ ¸¶Âù°¡Áö·Î ¹è¿·Î ÁغñÇÑ´Ù.
multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
ÀÌÁ¦ °¢ ÀÚ¸´¼ö¸¦ ¸ðµÎ °öÇÏ°í, ÀÌ °öÇÑ ³»¿ëµéÀ» ¸ðµÎ ÇÕÇÑ °ªÀ» ±¸ÇÑ´Ù.
for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
´ëÀÔ¹®Àº ±× ÀÚü·Î¼µµ °ªÀ» °¡Áø´Ù. À§ Äڵ忡¼ °ýÈ£·Î ¹ÀÎ *= ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´Â ¹®Àå ÀÚü´Â ¿À¸¥ÂÊÀÇ °ªÀ» ¿ÞÂÊÀÇ º¯¼ö¿¡ ´ëÀÔ½ÃÅ°´Â ¿ªÇÒµµ ÇÏÁö¸¸, ±× ÀÚü·Î¼µµ ´ëÀÔ½ÃÅ°´Â °ªÀ» °¡Áö°Ô µÈ´Ù. ÀÌÁ¦ ÇÕÇÑ °ªÀ» 11·Î ³ª´« ³ª¸ÓÁö¸¦ 11¿¡¼ »« °ªÀÇ ¸¶Áö¸· ÀÚ¸´¼ö°¡ Áֹεî·Ï¹øÈ£ÀÇ ¸¶Áö¸· ÀÚ¸´¼ö¿Í ÀÏÄ¡Çϸé Á¤»óÀûÀÎ Áֹεî·Ï¹øÈ£¶ó°í ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù.
if ((11 - (sum % 11)) % 10 != buf[12]) {
alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return;
}
°á ·Ð
´ÙÀ½Àº Áö±Ý±îÁö ¼³¸íÇÑ ³»¿ëÀ» ¸ðµÎ Æ÷ÇÔÇÏ´Â Àüü ¼Ò½ºÄÚµåÀÌ´Ù.
<html>
<head><title>Áֹεî·Ï¹øÈ£ °Ë»ç</title>
<script language="javascript">
function chkresno(resno) {
// ÁֹιøÈ£ÀÇ ÇüÅÂ¿Í 7¹ø° ÀÚ¸®(¼ºº°) À¯È¿¼º °Ë»ç
fmt = /^\d{6}-[1234]\d{6}$/;
if (!fmt.test(resno)) {
alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return;
}
// ³¯Â¥ À¯È¿¼º °Ë»ç
birthYear = (resno.charAt(7) <= "2") ? "19" : "20";
birthYear += resno.substr(0, 2);
birthMonth = resno.substr(2, 2) - 1;
birthDate = resno.substr(4, 2);
birth = new Date(birthYear, birthMonth, birthDate);
if ( birth.getYear() % 100 != resno.substr(0, 2) ||
birth.getMonth() != birthMonth ||
birth.getDate() != birthDate) {
alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return;
}
// Check Sum ÄÚµåÀÇ À¯È¿¼º °Ë»ç
buf = new Array(13);
for (i = 0; i < 6; i++) buf[i] = parseInt(resno.charAt(i));
for (i = 6; i < 13; i++) buf[i] = parseInt(resno.charAt(i + 1));
multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
if ((11 - (sum % 11)) % 10 != buf[12]) {
alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return;
}
alert("Á¤»óÀûÀÎ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù.");
}
</script>
</head>
<body>
<h1>Áֹεî·Ï¹øÈ£ °Ë»ç</h1>
<form onSubmit="chkresno(this.resno.value);return false">
Áֹεî·Ï¹øÈ£ <input type="text" name="resno">
<input type="submit" value="Áö±Ý °Ë»ç">
</form>
</body>
</html>