/*-------------------------------------------------------------------+
* 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¸¦, ±×·¸Áö ¾ÊÀ¸¸é ÀûÀýÇÑ À½¼ö¸¦ µ¹·Á ÁØ´Ù.
* ÀüȹøÈ£ÀÇ °¢ ¿ä¼Ò´Â ±¸º°ÀÚ(-)°¡ ¾ø´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù.
*
* ¿À·ù½Ã µ¹·ÁÁÖ´Â À½¼öÀÇ Àǹ̴ ´ÙÀ½°ú °°´Ù.
*
* - -1 : ¼ýÀÚ¿Í ´ë½¬(-) ÀÌ¿ÜÀÇ ¹®ÀÚ »ç¿ë
* - -2 : ÀüȹøÈ£ÀÇ Çü½Ä¿¡ ¸ÂÁö ¾ÊÀ½
* - -4 : Áö¿ª¹øÈ£°¡ »ç¿ëÇÏÁö ¾Ê´Â ¹øÈ£ÀÓ
* - -8 : ±¹¹øÈ£ ÀÚ¸´¼ö°¡ 3, 4ÀÚ¸®°¡ ¾Æ´Ô
* - -16 : ¸Ç µÚ ¹øÈ£ ÀÚ¸´¼ö°¡ 4ÀÚ¸®°¡ ¾Æ´Ô
*
*
* @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;
}