/*-------------------------------------------------------------------+ * 1. ÆÄÀϸí: valid.biz.js * 2. ¼³ ¸í: ¾÷¹«·ÎÁ÷°ú °ü·ÃÇÑ À¯È¿¼º Á¡°Ë ÇÔ¼ö¸¦ Á¤ÀÇÇÑ´Ù. * 3. ÀÇÁ¸¼º: util.js, string.js * 4. ÀÛ¼ºÀÚ: * 5. ÀÛ¼ºÀÏ: 2006.10.11. -------------------------------------------------------------------*/ /** * E ¸ÞÀÏ ÁÖ¼Ò Çü½ÄÀÌ ¸Â´ÂÁö °Ë»çÇÏ¿© ¸ÂÀ¸¸é true, * Çü½Ä¿¡ ¸ÂÁö ¾ÊÀ¸¸é false¸¦ µ¹·Á ÁØ´Ù. */ function checkEmail(email) { if ( isEmpty(email) ) return true; var emailRegEx = /^[-\w]+@[-\w]+(\.[-\w]+){1,3}\s*$/g; return emailRegEx.test(email); } function checkEmailObj(emailObj) { return checkEmail(emailObj.value); } function validateEmail(email, fieldName) { if ( fieldName == undefined ) fieldName = "E¸ÞÀÏ"; var valid = checkEmail(email); if ( ! valid ) { showMessage(fieldName + " Ç׸ñÀÇ °ªÀº E ¸ÞÀÏÀÇ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù."); } return valid; } function validateEmailObj(emailObj) { var valid = validateEmail(emailObj.value); if ( ! valid ) { emailObj.focus(); } return valid; } /* ÀüÈ­¹øÈ£¿ë Áö¿ª¹øÈ£ ¸ñ·Ï */ var tpLocalNoList = [ "02" , "031", "032", "033", "041", "042", "043", "051", "052", "053", "054", "055", "061", "062", "063", "064" ]; /** * TextÇü ÀÔ·Â ÆûÀÇ °ªÀÌ ¿Ã¹Ù¸¥ ÀüÈ­¹øÈ£(ÇÚµåÆù ¹øÈ£°¡ ¾Æ´Ñ)ÀÎÁö È®ÀÎÇÏ¿© * ¿Ã¹Ù¸£¸é true¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ »Ñ·ÁÁÖ°í false¸¦ µ¹·Á ÁØ´Ù. * ÀüÈ­¹øÈ£ÀÇ °¢ ¿ä¼Ò´Â ´ë½¬(-)·Î ±¸º°µÈ °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * @date 2004-02-02 * @param obj ÀüÈ­¹øÈ£¸¦ ÀÔ·Â ¹Þ´Â TextÇü ÀÔ·ÂÆû */ function checkTelNoObj(obj) { return checkTelNo(obj.value); } /** * ÁÖ¾îÁø °ªÀÌ ¿Ã¹Ù¸¥ ÀüÈ­¹øÈ£(ÇÚµåÆù ¹øÈ£°¡ ¾Æ´Ñ)ÀÎÁö È®ÀÎÇÏ¿© * ¿Ã¹Ù¸£¸é 0¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ À½¼ö¸¦ µ¹·Á ÁØ´Ù. * ÀüÈ­¹øÈ£ÀÇ °¢ ¿ä¼Ò´Â ±¸º°ÀÚ(-)°¡ ¾ø´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * ¿À·ù½Ã µ¹·ÁÁÖ´Â À½¼öÀÇ Àǹ̴ ´ÙÀ½°ú °°´Ù. * * * @date 2004-02-02 * @param phoneNo °Ë»çÇÏ·Á´Â ÀüÈ­¹øÈ£ °ª */ function checkTelNo(phoneNo) { // ºó°ªÀÌ¸é °Ë»çÇÏÁö ¾Ê´Â´Ù. if ( trim(phoneNo) == "" ) return 0; phoneNo = removeChar(phoneNo, '-'); if ( isNaN(phoneNo) ) return -1; /* Çü½Ä¿¡ ¹®ÀÚ°¡ ÀÖ´ÂÁö °Ë»çÇÑ´Ù. */ //var tpNoRegExp = /^(0[1-9]{1,2}-)?[\d]{3,4}-[\d]{4}$/; var tpNoRegExp = /^(02|0[3-6][1-5])?[1-9][\d]{6,7}$/; if ( ! tpNoRegExp.test(phoneNo) ) return -2; /* °¢ ¿ä¼Ò¸¦ ÀÚ¸¥´Ù. */ var localNo = ""; // Áö¿ª¹øÈ£ var areaNo = ""; // ±¹¹ø var restNo = ""; // ±âŸ ¹øÈ£ var hasLocalNo = ( phoneNo.length >= 9 && phoneNo.length <= 11 ); /* Áö¿ª¹øÈ£°¡ À¯¹«¿¡ µû¶ó ó¸®. */ if ( hasLocalNo ) { /* Áö¿ª¹øÈ£°¡ ÀÖÀ» ¶§. */ /* Áö¿ª¹øÈ£°¡ 02Àΰ¡? */ if ( phoneNo.indexOf("02") == 0 ) { localNo = "02"; areaNo = ( phoneNo.length == 9 ? phoneNo.substr(2, 3) : phoneNo.substr(2, 4) ); restNo = phoneNo.substr(2 + areaNo.length); } else { localNo = phoneNo.substr(0, 3); areaNo = ( phoneNo.length == 10 ? phoneNo.substr(3, 3) : phoneNo.substr(3, 4) ); restNo = phoneNo.substr(3 + areaNo.length); } } else { /* Áö¿ª¹øÈ£°¡ ¾øÀ» ¶§. */ areaNo = ( phoneNo.length == 7 ? phoneNo.substr(0, 3) : phoneNo.substr(0, 4) ); restNo = phoneNo.substr(areaNo.length); } /* Áö¿ª ¹øÈ£°¡ ÀÖÀ» ¶§¸¸ ó¸®ÇÑ´Ù. */ if ( hasLocalNo ) { /* À¯È¿ÇÑ Áö¿ª¹øÈ£°¡ ¾Æ´Ï¸é ¿À·ùÀÌ´Ù. */ var isExistsLocalNo = existsInArray(tpLocalNoList, localNo); if ( ! isExistsLocalNo ) { return -4; } } // ±¹¹øÈ£°¡ 3ÀÚ¸®¿¡¼­ 4ÀÚ¸®ÀÎÁö °Ë»çÇÑ´Ù. if ( areaNo.length != 3 && areaNo.length != 4 ) { return -8; } // ³ª¸ÓÁö ¹øÈ£¸¦ °Ë»çÇÑ´Ù. if ( restNo.length != 4 ) { return -16; } return 0; } /** * ÁÖ¾îÁø °ªÀÌ ¿Ã¹Ù¸¥ ÀüÈ­¹øÈ£(ÇÚµåÆù ¹øÈ£°¡ ¾Æ´Ñ)ÀÎÁö È®ÀÎÇÏ¿© * ¿Ã¹Ù¸£¸é 0¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ »Ñ·ÁÁÖ°í false¸¦ µ¹·Á ÁØ´Ù. * ÀüÈ­¹øÈ£ÀÇ °¢ ¿ä¼Ò´Â ´ë½¬(-)·Î ±¸º°µÈ °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * @date 2004-02-02 * @param phoneNo °Ë»çÇÏ·Á´Â ÀüÈ­¹øÈ£ °ª */ function validateTelNoObj(obj, fieldName) { var validResult = validateTelNo(obj.value, fieldName); if ( validResult < 0 ) { obj.focus(); } return validResult; } /** * ÁÖ¾îÁø °ªÀÌ ¿Ã¹Ù¸¥ ÀüÈ­¹øÈ£(ÇÚµåÆù ¹øÈ£°¡ ¾Æ´Ñ)ÀÎÁö È®ÀÎÇÏ¿© * ¿Ã¹Ù¸£¸é 0¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ »Ñ·ÁÁÖ°í false¸¦ µ¹·Á ÁØ´Ù. * ÀüÈ­¹øÈ£ÀÇ °¢ ¿ä¼Ò´Â ´ë½¬(-)·Î ±¸º°µÈ °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * @date 2004-02-02 * @param phoneNo °Ë»çÇÏ·Á´Â ÀüÈ­¹øÈ£ °ª */ function validateTelNo(phoneNo, fieldName) { var validResult = checkTelNo(phoneNo); /* fieldNameÀÌ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù¸é "ÀüÈ­¹øÈ£"·Î ÇÑ´Ù. */ if ( fieldName == undefined ) fieldName = "ÀüÈ­¹øÈ£"; var msg = ""; switch ( validResult ) { case -1 : msg = fieldName + "Àº(´Â) ¼ýÀÚ¸¸ ÀÌ¿ëÇØ¼­ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù."; break; case -2 : msg = fieldName + "ÀÇ Çü½Ä¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.\n\n" + "[Áö¿ª¹øÈ£][±¹¹ø3,4ÀÚ¸®][¹øÈ£4ÀÚ¸®]\n" + "ȤÀº [±¹¹ø3,4ÀÚ¸®][¹øÈ£4ÀÚ¸®]"; break; case -4 : msg = "Áö¿ª¹øÈ£°¡ ÇöÀç »ç¿ëÇÏÁö ¾Ê´Â ¹øÈ£ÀÔ´Ï´Ù."; break; case -8 : msg = "±¹¹øÈ£´Â 3ÀÚ¸®³ª 4ÀÚ¸®À̾î¾ß ÇÕ´Ï´Ù."; break; case -16 : msg = "¸Ç µÚ ¹øÈ£´Â 4ÀÚ¸®¸¦ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù."; break; } if ( validResult < 0 ) { alert(msg); } return validResult; } /** * ÀüÈ­(ȤÀº ÆÑ½º)¹øÈ£ÀÇ °ªÀ» È®ÀÎÇÏ¿© À¯È¿ÇÑ °æ¿ìÀ̸é Çü½ÄÈ­ÇÑ´Ù. */ function formatTelNoObjIfValid(obj, fieldName) { if ( validateTelNo(obj.value, fieldName) == 0 ) { /* À¯È¿ÇÑ °ªÀ̸é Çü½ÄÈ­ÇÑ´Ù. */ formatTelNoObj(obj); } else { /* À¯È¿ÇÏÁö ¾ÊÀº °ªÀ̸é Àâ¾Æ µÐ´Ù. */ obj.focus(); } } /* ÇÚµåÆù¿ë Áö¿ª¹øÈ£ ¸ñ·Ï */ var hpLocalNoList = [ "010", "011", "016", "017", "018", "019" ]; /** * TextÇü ÀÔ·Â ÆûÀÇ °ªÀÌ ¿Ã¹Ù¸¥ ÇÚµåÆù(ÇÚµåÆù ¹øÈ£°¡ ¾Æ´Ñ)ÀÎÁö È®ÀÎÇÏ¿© * ¿Ã¹Ù¸£¸é true¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ »Ñ·ÁÁÖ°í false¸¦ µ¹·Á ÁØ´Ù. * ÇÚµåÆù ¹øÈ£ÀÇ °¢ ¿ä¼Ò´Â ´ë½¬(-)·Î ±¸º°µÈ °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * @date 2004-02-02 * @param obj ÇÚµåÆù ¹øÈ£¸¦ ÀÔ·Â ¹Þ´Â TextÇü ÀÔ·ÂÆû */ function checkHpNoObj(obj) { return checkHpNo(obj.value); } /** * ÁÖ¾îÁø °ªÀÌ ¿Ã¹Ù¸¥ ÇÚµåÆù ¹øÈ£(ÀÏ¹Ý ÀüÈ­¹øÈ£°¡ ¾Æ´Ñ)ÀÎÁö È®ÀÎÇÏ¿© * ¿Ã¹Ù¸£¸é true¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ »Ñ·ÁÁÖ°í false¸¦ µ¹·Á ÁØ´Ù. * ÇÚµåÆù ¹øÈ£ÀÇ °¢ ¿ä¼Ò´Â ´ë½¬(-)·Î ±¸º°µÈ °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * @date 2004-02-02 * @param phoneNo °Ë»çÇÏ·Á´Â ÇÚµåÆù ¹øÈ£°ª */ function checkHpNo(phoneNo) { // ºó°ªÀÌ¸é °Ë»çÇÏÁö ¾Ê´Â´Ù. if ( trim(phoneNo) == "" ) return 0; phoneNo = removeChar(phoneNo, '-'); if ( isNaN(phoneNo) ) { return -1; } /* Çü½Ä¿¡ ¹®ÀÚ°¡ ÀÖ´ÂÁö °Ë»çÇÑ´Ù. */ //var hpNoRegExp = /^01[016789]-[\d]{3,4}-[\d]{4}$/; var hpNoRegExp = /^01[016789][\d]{7,8}$/; if ( ! hpNoRegExp.test(phoneNo) ) return -2; // °¢ ¿ä¼Ò¸¦ ÀÚ¸¥´Ù. var localNo = phoneNo.substr(0, 3);; // Áö¿ª¹øÈ£ var areaNo = ( phoneNo.length == 10 ? phoneNo.substr(3, 3) : phoneNo.substr(3, 4) ); // ±¹¹ø var restNo = phoneNo.substr(3 + areaNo.length); // ±âŸ ¹øÈ£ // À¯È¿ÇÑ Áö¿ª¹øÈ£°¡ ¾Æ´Ï¸é ¿À·ùÀÌ´Ù. var isExistsLocalNo = existsInArray(hpLocalNoList, localNo); if ( ! isExistsLocalNo ) { return -4; } // ±¹¹øÈ£°¡ 3ÀÚ¸®¿¡¼­ 4ÀÚ¸®ÀÎÁö °Ë»çÇÑ´Ù. if ( areaNo.length != 3 && areaNo.length != 4 ) { return -8; } // ³ª¸ÓÁö ¹øÈ£¸¦ °Ë»çÇÑ´Ù. if ( restNo.length != 4 ) { return -16; } return 0; } /** * ÁÖ¾îÁø °ªÀÌ ¿Ã¹Ù¸¥ ÀüÈ­¹øÈ£(ÇÚµåÆù ¹øÈ£°¡ ¾Æ´Ñ)ÀÎÁö È®ÀÎÇÏ¿© * ¿Ã¹Ù¸£¸é 0¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ »Ñ·ÁÁÖ°í false¸¦ µ¹·Á ÁØ´Ù. * ÀüÈ­¹øÈ£ÀÇ °¢ ¿ä¼Ò´Â ´ë½¬(-)·Î ±¸º°µÈ °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * @date 2004-02-02 * @param phoneNo °Ë»çÇÏ·Á´Â ÀüÈ­¹øÈ£ °ª */ function validateHpNoObj(obj, fieldName) { var validResult = validateHpNo(obj.value, fieldName); if ( validResult < 0 ) { obj.focus(); } return validResult; } /** * ÁÖ¾îÁø °ªÀÌ ¿Ã¹Ù¸¥ ÀüÈ­¹øÈ£(ÇÚµåÆù ¹øÈ£°¡ ¾Æ´Ñ)ÀÎÁö È®ÀÎÇÏ¿© * ¿Ã¹Ù¸£¸é 0¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ »Ñ·ÁÁÖ°í false¸¦ µ¹·Á ÁØ´Ù. * ÀüÈ­¹øÈ£ÀÇ °¢ ¿ä¼Ò´Â ´ë½¬(-)·Î ±¸º°µÈ °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * @date 2004-02-02 * @param phoneNo °Ë»çÇÏ·Á´Â ÀüÈ­¹øÈ£ °ª */ function validateHpNo(phoneNo, fieldName) { var validResult = checkHpNo(phoneNo); /* fieldNameÀÌ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù¸é "ÇÚµåÆù ¹øÈ£"·Î ÇÑ´Ù. */ if ( fieldName == undefined ) fieldName = "ÇÚµåÆù ¹øÈ£"; var msg = ""; switch ( validResult ) { case -1 : msg = fieldName + "Àº(´Â) ¼ýÀÚ¸¸ ÀÌ¿ëÇØ¼­ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù."; break; case -2 : msg = fieldName + "ÀÇ Çü½Ä([Áö¿ª¹øÈ£ 3ÀÚ¸®][±¹¹ø3,4ÀÚ¸®][¹øÈ£4ÀÚ¸®])¿¡ " + " ¸ÂÁö ¾Ê½À´Ï´Ù."; break; case -4 : msg = "Áö¿ª¹øÈ£°¡ ÇöÀç »ç¿ëÇÏÁö ¾Ê´Â ¹øÈ£ÀÔ´Ï´Ù."; break; case -8 : msg = "±¹¹øÈ£´Â 3ÀÚ¸®³ª 4ÀÚ¸®À̾î¾ß ÇÕ´Ï´Ù."; break; case -16 : msg = "¸Ç µÚ ¹øÈ£´Â 4ÀÚ¸®¸¦ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù."; break; } if ( validResult < 0 ) { alert(msg); } return validResult; } /** * ÇÚµåÆù ¹øÈ£ÀÇ °ªÀ» È®ÀÎÇÏ¿© À¯È¿ÇÑ °æ¿ìÀ̸é Çü½ÄÈ­ÇÑ´Ù. */ function formatHpNoObjIfValid(obj, fieldName) { if ( validateHpNo(obj.value, fieldName) == 0 ) { /* À¯È¿ÇÑ °ªÀ̸é Çü½ÄÈ­ÇÑ´Ù. */ formatHpNoObj(obj); } else { /* À¯È¿ÇÏÁö ¾ÊÀº °ªÀ̸é Àâ¾Æ µÐ´Ù. */ obj.focus(); } } function validateContactNoObj(obj, fieldName) { var result = validateContactNo(obj.value, fieldName); if ( result < 0 ) obj.focus(); return result; } /** * ¿¬¶ôóÀÇ ¹øÈ£°¡ À¯È¿ÇÑÁö °Ë»çÇÑ´Ù. * ¿¬¶ôó´Â ÀüÈ­¹øÈ£, ÆÑ½º¹øÈ£, ÇÚµåÆù ¹øÈ£¸¦ ¸ðµÎ ÅëĪÇÏ¿© ¸»ÇÑ´Ù. * * @param contactNo À¯È¿¼ºÀ» °ËÁõÇÒ ¿¬¶ôó ¹øÈ£. * @param fieldName À¯È¿¼ºÀ» °ËÁõÇÒ Ç׸ñ¸í. ¾øÀ¸¸é "¿¬¶ôó"¸¦ »ç¿ëÇÑ´Ù. */ function validateContactNo(contactNo, fieldName) { if ( contactNo == "" ) return 0; /* fieldNameÀÌ Á¤ÀǵÇÁö ¾Ê¾Ò´Ù¸é "¿¬¶ôó"¸¦ »ç¿ëÇÑ´Ù. */ if ( fieldName == undefined ) fieldName = "¿¬¶ôó"; /* ÀüÈ­/ÆÑ½º ¹øÈ£ÀÎÁö, ÇÚµåÆù ¹øÈ£ÀÎÁö¸¦ ÆÇ´ÜÇÑ´Ù. -1 : ¾Ë¼ö ¾øÀ½. -2 : Áö¿ª¹øÈ£ Á¤º¸ ¾øÀ½. 1 : ÀüÈ­/ÆÑ½º¹øÈ£. 2 : ÇÚµåÆù ¹øÈ£. */ var whichTypeNo = findWhichTypeNo(contactNo); var result = -1; if ( whichTypeNo == -1 || whichTypeNo == -2 || whichTypeNo == 1 ) { /* ¾Ë¼ö¾øÀ½À̰ųª Áö¿ª¹øÈ£°¡ ¾øÀ½ ÀϹÝÀüÈ­ Áö¿ª¹øÈ£À̸é ÀüÈ­¹øÈ£·Î °Ë»ç. */ result = validateTelNo(contactNo, fieldName); } else if ( whichTypeNo == 2 ) { /* ÇÚµåÆù ¹øÈ£À̸é ÇÚµåÆù ¹øÈ£·Î °Ë»ç */ result = validateHpNo(contactNo, fieldName); } return result; } /** * ¿¬¶ôóÀÇ ¹øÈ£°¡ ±¸Ã¼ÀûÀ¸·Î ¾î¶² ¹øÈ£ÀÎÁö * ÆÇ´ÜÇÏ¿© µ¹·Á ÁØ´Ù. * * -1 : ¾Ë¼ö ¾øÀ½. * -2 : Áö¿ª¹øÈ£ Á¤º¸ ¾øÀ½. * 1 : ÀüÈ­/ÆÑ½º¹øÈ£. * 2 : ÇÚµåÆù ¹øÈ£. */ function findWhichTypeNo(contactNo) { var whichTypeNo = -1; /* Çü½ÄÀÌ ¸Â´ÂÁö °Ë»çÇÏ¿© ¸ÂÁö ¾ÊÀ¸¸é ¾Ë¼ö ¾øÀ½. */ var contactNoRegExp = /^(0[1-9]{1,2}-)?[\d]{3,4}-[\d]{4}$/; if ( ! contactNoRegExp.test(contactNo) ) return -1; var tempArr = contactNo.split("-"); /* ±æÀ̰¡ 2À̸é Áö¿ª¹øÈ£ ¾øÀ½. */ if ( tempArr.length == 2 ) return -2; /* ÀüÈ­Áö¿ª¹øÈ£¿¡ ÀÖ³ª? */ if ( existsInArray(tpLocalNoList, contactNo) ) { whichTypeNo = 1; } /* ÇÚµåÆùÁö¿ª¹øÈ£¿¡ ÀÖ³ª? */ else if ( existsInArray(hpLocalNoList, contactNo) ) { whichTypeNo = 2; } return whichTypeNo; } /** * TextÇü ÀÔ·ÂÆûÀÇ °ªÀÌ À¯È¿ÇÑ Áֹεî·Ï¹øÈ£ ÀÎÁö¸¦ * Á¡°ËÇÏ¿© À¯È¿Çϸé true¸¦ µ¹·ÁÁÖ°í À¯È¿ÇÏÁö ¾ÊÀ¸¸é * ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ º¸¿©ÁØ ´ÙÀ½ false¸¦ µ¹·ÁÁØ´Ù. * ÆÄ¶ó¹ÌÅÍÀÎ obj2°¡ ³Ñ¾î¿ÀÁö ¾ÊÀ¸¸é obj1¿¡ Áֹεî·Ï¹øÈ£ * Àüü°¡ ´ã°Ü ÀÖ´Â °ÍÀ¸·Î °¡Á¤Çϸç, obj2°¡ ³Ñ¾î¿À¸é * ¾Õ 6ÀÚ¸®´Â obj1¿¡ µÚ 7ÀÚ¸®´Â obj2¿¡ ´ã°Ü ÀÖ´Â °ÍÀ¸·Î * °¡Á¤ÇÑ´Ù. * * @ÀÛ¼ºÀÏ 2004-02-05 * @param obj1 Àüü Áֹεî·Ï¹øÈ£ ȤÀº Áֹεî·Ï¹øÈ£ * ¾Õ 6ÀÚ¸®¸¦ ´ã°í ÀÖ´Â TextÇü ÀÔ·ÂÆû °´Ã¼ * @param obj2 Áֹεî·Ï¹øÈ£ µÚ 7ÀÚ¸®¸¦ ´ã°í ÀÖ´Â TextÇü ÀÔ·ÂÆû °´Ã¼ */ function checkSSNObj(obj1, obj2) { var valid = true; if ( obj2 == undefined ) { valid = checkSSN(obj1.value); } else { valid = checkSSN(obj1.value, obj2.value); } return valid; } /** * Áֹεî·Ï¹øÈ£ À¯È¿¼º ¿©ºÎ¸¦ Á¡°ËÇÏ¿© À¯È¿Çϸé true¸¦ * À¯È¿ÇÏÁö ¾ÊÀ¸¸é ÀûÀýÇÑ ¸Þ¼¼Áö¸¦ º¸¿©ÁÖ°í false¸¦ µ¹·ÁÁØ´Ù. * ÆÄ¶ó¹ÌÅÍÀÇ °¹¼ö¿¡ µû¶ó ±× Àǹ̰¡ Á¶±Ý ´Þ¶óÁø´Ù. * ssn2°¡ Á¤ÀǵÇÁö ¾Ê¾ÒÀ¸¸é, ´ë½¬(-)ÀÇ ¿©ºÎ¿¡ * »ó°ü¾øÀÌ ssn1¿¡ Àüü Áֹεî·Ï¹øÈ£°¡ ´ã°ÜÀÖ´Â °ÍÀ¸·Î * °¡Á¤Çϰí, ssn2°¡ Á¤ÀǵǾî ÀÖÀ¸¸é ssn1¿¡ ¾Õ 6ÀÚ¸® * ssn2¿¡ µÚ 7ÀÚ¸®·Î ³Ñ¾î¿À´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. * * @ÀÛ¼ºÀÏ 2004-02-05 * @param ssn1 Àüü Áֹεî·Ï¹øÈ£ ȤÀº Áֹεî·Ï¹øÈ£ ¾Õ 6ÀÚ¸® * @param ssn2 Áֹεî·Ï¹øÈ£ µÚ 7ÀÚ¸® */ function checkSSN(ssn1, ssn2) { var ssn = ""; if ( ssn2 == undefined ) { ssn = ssn1; } else { ssn = ssn1 + "-" + ssn2; } // ÁֹιøÈ£ÀÇ ÇüÅÂ¿Í 7¹øÂ° ÀÚ¸®(¼ºº°) À¯È¿¼º °Ë»ç var ssnRegEx = /^\d{6}-[1234]\d{6}$/; if ( ! ssnRegEx.test(ssn)) { alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return false; } // ³¯Â¥ À¯È¿¼º °Ë»ç var birthYear = (ssn.charAt(7) <= "2") ? "19" : "20"; birthYear += ssn.substr(0, 2); var birthMonth = ssn.substr(2, 2) - 1; var birthDate = ssn.substr(4, 2); var birth = new Date(birthYear, birthMonth, birthDate); if ( birth.getYear() % 100 != ssn.substr(0, 2) || birth.getMonth() != birthMonth || birth.getDate() != birthDate ) { alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return false; } // Check Sum ÄÚµåÀÇ À¯È¿¼º °Ë»ç var buf = new Array(13); for (var i = 0; i < 6; i++) { buf[i] = parseInt(ssn.charAt(i)); } for (var i = 6; i < 13; i++) { buf[i] = parseInt(ssn.charAt(i + 1)); } var multipliers = [2,3,4,5,6,7,8,9,2,3,4,5]; var sum = 0; for (var i = 0; i < 12; i++) { sum += (buf[i] *= multipliers[i]); } if ( (11 - (sum % 11) ) % 10 != buf[12] ) { alert("À߸øµÈ Áֹεî·Ï¹øÈ£ÀÔ´Ï´Ù."); return false; } return true; }