기타정보

JS 정리 작업

쿠카곰돌이 2020. 1. 28. 05:06
반응형

KG_U.js
0.05MB

KG U+ 자바스크립트

makePCookie.js
0.00MB

 

    ///////////////////////////////////////////////////////////////////////////////////////////////
    // Popup
    ///////////////////////////////////////////////////////////////////////////////////////////////
/**
 * Popup의 크기를 변경한다.
 * @param width
 * @param height
 */
$.popupResize = function(width, height) {
var isCheck = false;
if(document.body.scrollHeight <= 600 ) {
      if(navigator.appName.indexOf('Microsoft') > -1 ) {          // 인터넷 익스플로러인지 확인
      if(navigator.appVersion.indexOf('MSIE 6') > -1) {       // 익스플로러이면 버전 6인지 확인
      self.resizeTo(width+10, height+50);
      isCheck= true;
      }
      }
      if(!isCheck) {
      self.resizeTo(width+8, height+80);
      }
} else {
document.body.scroll = 'yes';
    self.resizeTo(width+28, 600);
}
},
    ///////////////////////////////////////////////////////////////////////////////////////////////
    // Popup -End
    ///////////////////////////////////////////////////////////////////////////////////////////////

    ///////////////////////////////////////////////////////////////////////////////////////////////
    // Form
    ///////////////////////////////////////////////////////////////////////////////////////////////

    /**
 * Hidden 객체를 생성한다.
 * @param formObj (Object)form의 참조 값
 * @param fieldId 필드ID
 * @param value 필드 값
 * @param (Boolean)isDuplicate 중복 허용 여부
 */
$.createHiddenField = function(formObj, fieldId, value, isDuplicate){
var checkDuplicate = false;
if( isDuplicate ){
checkDuplicate = isDuplicate;
}
if( formObj[fieldId] && !checkDuplicate ){
formObj[fieldId].value = value;
}else{
var fieldObj = document.createElement('input');

fieldObj.type = 'hidden';
fieldObj.id = fieldId;
fieldObj.name = fieldId;
fieldObj.value = value;

formObj.appendChild(fieldObj);
}
},

/**
 * Hidden 객체를 삭제한다.
 * @param formObj (Object)form 참조 값
 * @param fieldId 삭제 필드ID
 */
$.removeHiddenField = function(formObj, fieldId){
if (formObj.childNodes) {
for (var idx = 0; idx < formObj.childNodes.length; idx++) {
if (formObj.childNodes[idx].id == fieldId) {
formObj.removeChild(formObj.childNodes[idx]);
}
}
}
},

/**
 * 가상 form을 생성한다.
 * @param data
 * @return form object
 */
$.createForm = function(data) {
var virtualForm = document.createElement('form');

if (data != null && data != undefined) {
for (var i = 0; i < data.length; i++) {
$.createHiddenField(virtualForm, data[i].id, data[i].value, true);
}
}

return virtualForm;
},

/**
 * Select 엘리먼트의 Option을 모두 제거한다. 단 0번째 index는 제외한다.
 * @param selectElement optioins을 제거할 selectbox
 */
$.clearSelectboxOptions = function(selectElement) {
if (selectElement.options.length > 1) {
for (idx = selectElement.length - 1; idx > 0; idx--) {
selectElement.options[idx] = null;
}
}
},

/**
 * 입력받을 수 있는 값을 필터링한다.
 * ex : 

 ; 숫자만 키입력이 가능한 text filed
 * ex : 

 ; 영문,숫자만 키입력이 가능한 text filed
 * ex : 

 ; 한글만 키입력이 가능한 text filed
 * ex : 

 ; 숫자,한글만 키입력이 가능한 text filed
 * @param filter 필터링할 정규표현식 ex) '[0-9]':0~9의 값만 허용, '[a-zA-Z]':알파벳만 허용
 * @param e
 * @return
 */
$.onKeyPressFilter = function(filter, e) {
var key;
var keychar;


if (window.event) {
   // IE에서 이벤트를 확인하기 위한 설정
key = window.event.keyCode;
} else if (e) {
  // FireFox에서 이벤트를 확인하기 위한 설정
key = e.which;
} else {
return true;
}

if ((key == null) || (key == 0) || (key == 8) || (key == 9) || (key == 13) || (key == 27)) {
return true;
}

keychar = String.fromCharCode(key);


var re = new RegExp(filter);
if (re.test(keychar)) return true;
else return false;

},

/**
 * 3개로 분리되어 있는 이메일 주소를 하나로 합친다.
 * @param email 하나로 합친 이메일 주소를 가지고 있을 엘리먼트 ID
 * @param emailId 이메일 ID의 엘리먼트 ID
 * @param inputId 직접 입력 도메인 엘리먼트의 ID
 * @param selectId 도메인을 선택하는 엘리먼트 ID
 */
$.emailMerge = function(email, emailId, inputId, selectId) {
var id = $('#'+emailId).val();
var input = $('#'+inputId).val();
var select = $('#'+selectId).val();

if(select == null || select == '') {
$('#'+email).val(id + '@' + input);
} else {
$('#'+email).val(id + '@' + select);
}
},

/**
 * 2개의 입력 엘리먼트를 하나의 입력 엘리먼트에 합친다.
 * @param merge 하나로 합친 엘리먼트 ID
 * @param merge1 1번째 엘리먼트의 ID
 * @param merge2 2번째 엘리먼트의 ID
 */
$.merge2 = function(merge, merge1, merge2) {
$('#'+merge).val($('#'+merge1).val() + $('#'+merge2).val());
},

/**
 * 3개의 입력 엘리먼트를 하나의 입력 엘리먼트에 합친다.
 * @param merge 하나로 합친 엘리먼트 ID
 * @param merge1 1번째 엘리먼트의 ID
 * @param merge2 2번째 엘리먼트의 ID
 * @param merge3 3번째 엘리먼트의 ID
 */
$.merge3 = function(merge, merge1, merge2, merge3) {
$('#'+merge).val($('#'+merge1).val() + $('#'+merge2).val() + $('#'+merge3).val());
},
    ///////////////////////////////////////////////////////////////////////////////////////////////
    // Form -End
    ///////////////////////////////////////////////////////////////////////////////////////////////

    ///////////////////////////////////////////////////////////////////////////////////////////////
// Valid
///////////////////////////////////////////////////////////////////////////////////////////////
/**
 * 이메일 유효성 검사를 한다.
 * @param email 이메일주소
 * @return 검사 결과
 */
$.validEmail = function(email) {
if(email == null || email == '') return false;

if (/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(email)) return true;
else return false;
},

/**
 * 주민등록번호 유효성 검사를 한다.
 * @param juminNo 주민등록번호
 * @return 검사 결과
 */
$.validJumin = function(juminNo) {
var Sum = 0;
var i, j = 2;
var ChkKey1;
var ChkKey2;
var Month, Day;
var Sex;

if($.trim(juminNo).length != 13) return false;

for(i = 0; i < 12; i++) {
if(i == 8) j = 2;
Sum += juminNo.charAt(i) * j;
j += 1;
}

ChkKey1 = juminNo.charAt(12);
ChkKey2 = (11 - (Sum % 11)) % 10;

Month = juminNo.substr(2, 2);
Day = juminNo.substr(4, 2);
Sex = juminNo.charAt(6);

// Sex : 1(1900년대 국내남성),  2(1900년대 국내여성)
//  3(2000년대 국내남성),  4(2000년대 국내여성)
//  5(1900년대 외국남성),  6(1900년대 외국여성)
//  7(2000년대 외국남성),  8(2000년대 외국여성)
// if(ChkKey1 != ChkKey2 || Month > 12 || Day > 31 || (Sex != 1 && Sex != 2 && Sex != 3 && Sex != 4)) return false;
if((ChkKey1 != ChkKey2 && ChkKey1 != ((ChkKey2 + 2) % 10)) || Month > 12 || Day > 31) return false;

return true;
},

/**
 * 사업자번호 유효성 검사를 한다.
 * @param bizNo 사업자번호
 * @return 검사 결과
 */
$.validBizNo = function(bizNo) {
var sum = 0;
var getlist =new Array(10);
var chkvalue =new Array("1","3","7","1","3","7","1","3","5");
for(var i=0; i<10; i++) { getlist[i] = bizNo.substring(i, i+1); }
for(var i=0; i<9; i++) { sum += getlist[i]*chkvalue[i]; }
sum = sum + parseInt((getlist[8]*5)/10);
sidliy = sum % 10;
sidchk = 0;
if(sidliy != 0) { sidchk = 10 - sidliy; }
else { sidchk = 0; }
if(sidchk != getlist[9]) {
return false;
}
return true;
},

/**
 * 법인번호 유효성 검사를 한다.
 * @param corpNo 법인번호
 * @return 검사 결과
 */
$.validCorpNo = function(corpNo) {
var Sum = 0;
var i;
var ChkKey1;
var ChkKey2;
   
for(i = 0; i < 12; i++){
Sum += corpNo.charAt(i) * ((i % 2) + 1);
}

ChkKey1 = corpNo.charAt(12);
ChkKey2 = (10 - (Sum % 10)) % 10;

if(ChkKey1 != ChkKey2) return false;

return true;
},

/**
 * 외국인등록번호 유효성 검사를 한다.
 * @param foreignNo 외국인번호
 * @return 검사 결과
 */
$.validForeignNo = function(foreignNo) {
var sJuminChkDgt =  new Array (2,3,4,5,6,7,8,9,2,3,4,5);
var iOdd = 0;
var iSum = 0;
var iMidSum = new Array(13);

iOdd = parseInt(foreignNo.substr(7, 1))*10 + parseInt(foreignNo.substr(8, 1));
if (iOdd % 2 != 0 ) {
return false;
}

if ( (parseInt(foreignNo.substr( 11, 1)) !=6 ) && (parseInt(foreignNo.substr( 11, 1)) !=7 ) &&
 (parseInt(foreignNo.substr( 11, 1)) !=8 ) && (parseInt(foreignNo.substr( 11, 1)) !=9 ) ) {
return false;
}

for (  ix = 0; ix < 12 ; ix++) {
iSum += (parseInt(foreignNo.substr(ix, 1)) * sJuminChkDgt[ix]) ;
}

iSum = 11 - (iSum%11);

if ( iSum >= 10 ) {
iSum = iSum - 10;
}

iSum = iSum + 2;
if ( iSum >= 10 ) {
iSum = iSum - 10;
}

if (iSum != (parseInt(foreignNo.substr(12, 1)))) {
return false;
} else {
return true;
}

return true;
},

/**
 * jquery.validate의 에러 위치에 메시지를 표시한다.
 * @param msg 에러 메시지
 * @param errorElement 에러 표시 위치
 */
$.jqueryValidMsg = function(msg, errorElement) {
var $tgObj = $('label[for=' + errorElement + '][class^=error]');
    if($tgObj.length == 0) {
            $spa = $('div[title='+ errorElement +']').show().html(msg);         
    }  else {
    $tit = $tgObj.attr('for');
    $tgObj.after("

" + msg + "

");
    $tgObj.remove();         
    }
},

/**
 * jquery.validate의 에러 위치에 메시지를 표시한다.
 * @param msg 에러 메시지
 * @param errorElement 에러 표시 위치
 * @param focusElement focus 표시 위치
 * @param msgType  Message Type(default:alert,B:bodyMsg)
 */
$.jqueryValidMsgFocus = function(msg, errorElement, focusElement,msgType) {
if(msgType == 'B'){
$.jqueryValidMsg( msg ,errorElement);
$('#'+focusElement).focus();
}else{
alert(msg);
$('#'+focusElement).focus();

},

/**
 * jquery.validate의 에러메시지를 숨긴다.
 * @param errorElement 에러 표시 위치
 */
$.jqueryValidHide = function(errorElement) {
//alert(errorElement);
var $tgObj = $('label[for=' + errorElement + '][class^=error]');
    if($tgObj.length == 0) {
    if($('div[title='+ errorElement +']').length > 1) {
     $('div[title='+ errorElement +']').eq(-1).hide();
        } else {
         $('div[title='+ errorElement +']').hide();
    }
    }  else {
     if($tgObj.length>1){
     $tgObj.eq(-1).hide();
     } else {
     $tgObj.hide();
     }
     }
},
    ///////////////////////////////////////////////////////////////////////////////////////////////
// Valid -End
///////////////////////////////////////////////////////////////////////////////////////////////

    ///////////////////////////////////////////////////////////////////////////////////////////////
// MessageBox
///////////////////////////////////////////////////////////////////////////////////////////////
    /**
 * Alert MessageBox 표시
 * @param title 제목
 * @param message 내용
 * @param callbackFunc callback 함수
 */
$.alertMsgBox = function(title, message, callbackFunc) {
$('#HPI_MSGBOX_ALERT').html(message);
$('#HPI_MSGBOX_ALERT').dialog({
modal: true,
title: title,
buttons: { 'Ok': function() {
if(callbackFunc != null) callbackFunc(true);
$(this).dialog('close');
} }
});
},

/**
 * Confirm MessageBox 표시
 * @param title 제목
 * @param message 내용
 * @param callbackFunc callback 함수
 */
$.confirmMsgBox = function(title, message, callbackFunc) {
$('#HPI_MSGBOX_CONFIRM').html(message);
$('#HPI_MSGBOX_CONFIRM').dialog({
modal: true,
title: title,
buttons: {
'Yes': function() {
callbackFunc(true);
$(this).dialog('close');
},
'No': function() {
callbackFunc(false);
$(this).dialog('close');
}
}
});
},

/**
 * Error MessageBox 표시
 * @param title 제목
 * @param message 내용
 * @param callbackFunc callback 함수
 */
$.errorMsgBox = function(title, message, callbackFunc) {
$('#HPI_MSGBOX_ERROR').html(message);
$('#HPI_MSGBOX_ERROR').dialog({
modal: true,
title: title,
buttons: { 'Ok': function() {
if(callbackFunc != null) callbackFunc(true);
$(this).dialog('close');
} }
});
},

///////////////////////////////////////////////////////////////////////////////////////////////
// MessageBox -End
///////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////////////////////
// 입력 형식 변경
///////////////////////////////////////////////////////////////////////////////////////////////
    /**
 * 날짜 포맷 형식으로 변환한다.
 * @param strDate String 형식의 날짜
 * @param pattern 날짜 패턴
 * @return 변환된 날자
 */
$.dateFormat = function(strDate, pattern){
if(strDate == null || strDate == '') return '';

var year = 0;
var month = 0;
var day = 0;
var hours = 0;
var minutes = 0;
var seconds = 0;

if(strDate.length == 8 ){
year = strDate.substring(0,4);
month = strDate.substring(4,6);
day = strDate.substring(6,8);
} else if(strDate.length == 10 ) {
year = strDate.substring(0,4);
month = strDate.substring(4,6);
day = strDate.substring(6,8);
hours = strDate.substring(8,10);
} else if(strDate.length == 12 ) {
year = strDate.substring(0,4);
month = strDate.substring(4,6);
day = strDate.substring(6,8);
hours = strDate.substring(8,10);
minutes = strDate.substring(10,12);
} else {
year = strDate.substring(0,4);
month = strDate.substring(4,6);
day = strDate.substring(6,8);
hours = strDate.substring(8,10);
minutes = strDate.substring(10,12);
seconds = strDate.substring(12);
}

var date = new Date(year, month-1, day, hours, minutes, seconds, 0);

return $.dateFormatObj(date, pattern);
    },

/**
 * 전달된 날짜를 제공된 패턴에 맞추어 날짜를 형식돠
 * @param date (Object)날짜
 * @param pattern 날짜 패턴
 * @return 형식화된 날짜
 */
$.dateFormatObj = function(date, pattern) {
var result = [];
while(pattern.length>0) {
$.dateFormat.patternParts.lastIndex = 0;
var matched = $.dateFormat.patternParts.exec(pattern);
if(matched) {
result.push($.dateFormat.patternValue[matched[0]].call(this,date));
pattern = pattern.slice(matched[0].length);
} else {
result.push(pattern.charAt(0));
pattern = pattern.slice(1);
}
}
return result.join('');
},

/**
 * 날짜 패턴 정규식
 */
$.dateFormat.patternParts = /^(yy(yy)?|M(M(M(M)?)?)?|d(d)?|EEE(E)?|a|H(H)?|h(h)?|m(m)?|s(s)?|S)/;

/**
 * 월의축약명
 */
$.dateFormat.monthNames = [
'January','February','March','April','May','June','July',
'August','September','October','November','December'
],

$.dateFormat.dayNames = [
'Sunday','Monday','Tuesday','Wednesday','Thursday','Friday',
'Saturday'
],

/**
 * 날짜 패턴에 해당하는 날짜 정보
 * @return 패턴에 일치하는 날짜 정보
 */
$.dateFormat.patternValue = {
yy: function(date) {
return $.leftPad(date.getFullYear(),2,'0');
},
yyyy: function(date) {
return date.getFullYear().toString();
},
MMMM: function(date) {
return $.formatDate.monthNames[date.getMonth()];
},
MMM: function(date) {
return $.formatDate.monthNames[date.getMonth()].substr(0,3);
},
MM: function(date) {
return $.leftPad(date.getMonth()+1,2,'0');
},
M: function(date) {
return date.getMonth()+1;
},
dd: function(date) {
return $.leftPad(date.getDate(),2,'0');
},
d: function(date) {
return date.getDate();
},
EEEE: function(date) {
return $.formatDate.dayNames[date.getDay()];
},
EEE: function(date) {
return $.formatDate.dayNames[date.getDay()].substr(0,3);
},
HH: function(date) {
return $.leftPad(date.getHours(),2,'0');
},
H: function(date) {
return date.getHours();
},
hh: function(date) {
var hours = date.getHours();
return $.leftPad(hours>12 ? hours - 12 : hours,2,'0');
},
h: function(date) {
return date.getHours()%12;
},
mm: function(date) {
return $.leftPad(date.getMinutes(),2,'0');
},
m: function(date) {
return date.getMinutes();
},
ss: function(date) {
return $.leftPad(date.getSeconds(),2,'0');
},
s: function(date) {
return date.getSeconds();
},
S: function(date) {
return $.leftPad(date.getMilliseconds(),3,'0');
},
a: function(date) {
return date.getHours() < 12 ? 'AM' : 'PM';
}
},

    /**
 * 숫자 포맷 형식으로 변환한다.
 *  3자리 간격으로 ,를 추가
 * @param num String 형식의 숫자
 */
$.numberFormat = function(num) {
if(num == null || num == '') return null;

var amount1 = '';
var amount2 = '';
var idx = num.lastIndexOf(".");
if(idx > -1) {
amount1 = num.substring(0, idx);
amount2 = num.substring(idx);
} else {
amount1 = num;
}

var amount = new String(amount1);
amount = amount.replace(/,/gi,'');

var sign = '';
if(isNaN(amount)) {
//alert('숫자만 입력할 수 있습니다.');
return 0;
}
if(amount == 0) {
  return amount;
}

if(amount < 0) {
amount = amount * (-1);
sign = "-";
} else{
amount = amount * 1;
}

amount = new String(amount)
var temp="";
var pos=3;
num_len=amount.length;
while(num_len>0) {
num_len=num_len-pos;
if(num_len<0) {
pos=num_len+pos;
num_len=0;
}
temp=","+amount.substr(num_len,pos)+temp;
}
return sign+temp.substr(1)+amount2;
},

    /**
 * 주민등록번호(사업자번호) 형식의 포맷으로 변환한 문자열을 반환합니다.
 * @param bizNo 주민등록번호(사업자번호)
 * @return 포맷 형식으로 변환된 주민등록번호(사업자번호)
 */
$.bizNoFormat = function(bizNo) {
        if(bizNo == null ) return null;
if(bizNo.length == 10) {
return bizNo.substring(0, 3) + "-" + bizNo.substring(3, 5) + "-" + bizNo.substring(5, 10);
}
//13자리이지만 앞 3자리가 999로 시작할 경우
else if(bizNo.length == 13 && $.startsWith(bizNo,'999')) {
return bizNo.substring(3, 6) + "-" + bizNo.substring(6, 8) + "-" + bizNo.substring(8, 13);
}
//그 이외에 13자리인경우 주민번호로 변환합니다.
else if(bizNo.length == 13) {
return bizNo.substring(0, 6) + "-" + bizNo.substring(6, 13);
}
else{
return bizNo;
}
},

/**
 * 카드번호 포맷으로 변경한다.
 * @param card 카드번호
 * return 포맷으로 변환한 카드번호
 */
$.cardFormat = function(card) {
        if(card == null || card.indexOf("-") >= 0) return card;
        
        var cardLength = card.length;
        var nCard = '';
        
        if(cardLength == 16) {
            nCard = card.substring(0,4) + '-' + card.substring(4,8) + '-' + card.substring(8,12) + '-' + card.substring(12);
        } else {
            nCard = card
        }
        
        return nCard;
},

/**
 * 전화번호 포맷으로 변경한다.
 * @param phone 전화번호
 * return 포맷으로 변환한 전화번호
 */
$.phoneFormat = function(phone) {
        if(phone == null) return null;
        if(phone.indexOf('-') > 0) return phone;
        
        var format = null;
        var phoneLength = phone.length;
        
        if(phoneLength < 7) return phone;
        else if(phoneLength == 7)
            format = phone.substring(0,3) + '-' + phone.substring(3);
        else if(phoneLength == 8)
            format = phone.substring(0,4) + '-' + phone.substring(4);
        else if(phoneLength == 9)
            format = phone.substring(0,2) + '-' + phone.substring(2,5) + '-' + phone.substring(5);
        else if(phoneLength == 10) {
            if($.startsWith(phone, '02'))
                format = phone.substring(0,2) + '-' + phone.substring(2,6) + '-' + phone.substring(6);
            else
                format = phone.substring(0,3) + '-' + phone.substring(3,6) + '-' + phone.substring(6);
        } else
            format = phone.substring(0,3) + '-' + phone.substring(3,7) + '-' + phone.substring(7);
        
        return format;
},

///////////////////////////////////////////////////////////////////////////////////////////////
// 입력 형식 변경 -End
///////////////////////////////////////////////////////////////////////////////////////////////

    ///////////////////////////////////////////////////////////////////////////////////////////////
    // Utils
    ///////////////////////////////////////////////////////////////////////////////////////////////
/**
 * 문자열 길이만큼 왼쪽에 패드문자를 덧붙인다.
 * @param str 원본 문자열
 * @param size 문자열 길이
 * @param padChar 왼쪽에 덧붙일 문자
 * @return 패드문자를 덧붙인 문자열
 */
$.leftPad = function(str, size, padChar) {
str = str.toString();
        var padCnt = size - str.length;
        if(padCnt < 0) {
            return str.substr(-padCnt);
        } else {
            for(var i=0; i<padCnt; i++) {
                str = padChar + str;
            }
            return str;
        }
    },

    /**
     * 문자열 길이만큼 오른쪽에 패드문자를 덧붙인다.
 * @param str 원본 문자열
 * @param size 문자열 길이
 * @param padChar 오른쪽에 덧붙일 문자
 * @return 패드문자를 덧붙인 문자열
     */
    $.rightPad = function(str, size, padChar) {
        var padCnt = size - str.length;
        if(padCnt < 0) {
            return str.substr(-padCnt);
        } else {
            for(var i=0; i<padCnt; i++) {
                str = str + padChar;
            }
            return str;
        }
    },

/**
 * '-' 를 제거한다.
 * @param val 제거 전 데이터
 * @return 제거 후 데이터
 */
$.stripDash = function(val) {
var re = /-/g;
return val.replace(re, '');
},

/**
 * 콤마(,)를 제거한다.
 * @param val 제거 전 데이터
 * @return 제거 후 데이터
 */
$.stripComma = function(val) {
var re = /,/g;
return val.replace(re, '');
},

/**
 * 닷(.)를 제거한다.
 * @param val 제거 전 데이터
 * @return 제거 후 데이터
 */
$.stripDot = function(val) {
        alert('$.stripDot() 함수에 오류가 있습니다.');
var re = /./g;
return val.replace(re, '');
},

/**
 * 앞/뒤 공백을 제거한다.
 * @param val 제거 전 데이터
 * @return 제거 후 데이터
 */
$.trim = function(val) {
return val.replace(/(^\s*)|(\s*$)|($\s*)/g, '');
},

/**
 * 입력 문자가 영문인지 검사한다.
 * @param value 입력 문자열
 * @reutrn 검사 결과
 */
$.isEng = function(val) {
        var re = /^[a-zA-Z]+$/;
return re.test(val);
},

/**
 * 입력 문자가 한글인지 검사한다.
 * @param value 입력 문자열
 * @reutrn 검사 결과
 */
$.isKor = function(val) {
var re = /^[\u3130-\u318f\uac00-\ud7af]+$/;
return re.test(val);
},

/**
 * 입력 문자가 숫자인지 검사한다.
 * @param value 입력 문자열
 * @param isDecimal true이면 닷(.) 입력 가능
 * @reutrn 검사 결과
 */
$.isNum = function(val, isDecimal) {
        var re = '';
        if(isDecimal != null && isDecimal == true) {
            re = /^[0-9.]+$/;
        } else {
            re = /^[0-9]+$/;
        }
return re.test(val);
},

/**
 * 입력 문자가 숫자&영문인지 검사한다.
 * @param value 입력 문자열
 * @reutrn 검사 결과
 */
$.isNumNEng = function(val) {
        var re = /^[0-9a-zA-Z]+$/;
return re.test(val);
},

/**
 * 입력 문자가 숫자&한글인지 검사한다.
 * @param value 입력 문자열
 * @reutrn 검사 결과
 */
$.isNumNKor = function(val) {
var re = /^[0-9\u3130-\u318f\uac00-\ud7af]+$/;
return re.test(val);
},

/**
 * 입력 문자가 숫자&한글&영문인지 검사한다.
 * @param value 입력 문자열
 * @reutrn 검사 결과
 */
$.isNumNKorNEng = function(val) {
var re = /^[0-9a-zA-Z\u3130-\u318f\uac00-\ud7af]+$/;
return re.test(val);
},

/**
 * char 형식의 문자의 byte 수를 계산한다.
 * @param char char 형식의 문자
 * @return byte 수
 */
$.charByteSize = function(ch) {
if (ch == null || ch.length == 0) {
return 0;
}

var charCode = ch.charCodeAt(0);

if (charCode <= 0x00007F) {
return 1;
} else if (charCode <= 0x0007FF) {
return 2;
} else if (charCode <= 0x00FFFF) {
return 3;
} else {
return 4;
}
},

    /**
 * String 형식의 문자열의 byte 수를 계산한다.
 * @param str String 형식의 문자열
 * @return byte 수
 */
$.stringByteSize = function (str) {
if (str == null || str.length == 0) {
return 0;
}

var size = 0;
for (var i = 0; i < str.length; i++) {
size += $.charByteSize(str.charAt(i));
}
return size;
},

    /**
     * 일치하는 문자로 시작하는지 검사한다.
     * @param str 문자열
     * @param prefix 일치하는 문자열
     * @return 일치 여부
     */
    $.startsWith = function(str, prefix) {
        return (str.match('^'+prefix)==prefix);
    },

    /**
     * 숫자 형식의 문자열에  3 자리마다 콤마(,)를 붙여 반환한다.
     * @param numStr 콤마를 붙일 숫자 형식의 문자열
     * @return 콤마(,)를 붙인 숫자 형식의 문자열
     */
    $.formatCommas = function(numStr) {
        var re = /,|\s+/g;
        numStr = numStr.replace(re, "");

        re = /(-?\d+)(\d{3})/;
        while (re.test(numStr)) {
            numStr = numStr.replace(re, "$1,$2");
        }
        return numStr;
    },

    /**
     * 사업자번호 형식으로 변환한다.
     * @param bizNo 사업자번호
     * @return 사업자번호
     */
    $.toBizNo = function(bizNo){
        if(bizNo == null) return '';
        if(bizNo.length == 10){
            return bizNo.substring(0, 3) + '-' + bizNo.substring(3, 5) + '-' + bizNo.substring(5, 10);
        }
        //13자리이지만 앞 3자리가 999로 시작할 경우
        else if(bizNo.length == 13 && bizNo.startsWith('999')){
            return bizNo.substring(3, 6) + '-' + bizNo.substring(6, 8) + '-' + bizNo.substring(8, 13);
        }
        //그 이외에 13자리인경우 주민번호로 변환합니다.
        else if(bizNo.length == 13){
            return bizNo.substring(0, 6) + '-' + bizNo.substring(6, 13);
        }
        else{
return bizNo;
}
    },

    /**
     * 카드변호 형식으로 변환한다.
     * @param cardNo 카드번호
     * @return 카드번호
     */
    $.toCardNo = function(cardNo) {
        if(cardNo == null ) return '';
        if(cardNo.length == 16){
            //return cardNo.substring(0, 4) + "-" + cardNo.substring(4, 8) + "-" + cardNo.substring(8, 12) + "-" + cardNo.substring(12, 16);
            return cardNo.substring(0, 4) + "-****-****-" + cardNo.substring(12, 16);
        }
else{
return cardNo;
}
    }

    /**
     * 인자로 넘어온 value값을 Money 형식으로 변환해서 return 합니다.
     * @param val
     * @return
     */
    $.toMoney = function(val) {
        // 첫자리 0 삭제
        for(var i=0; i<val.length; i++){
            if(val.length > 1 && val.indexOf('0') == 0 && val.indexOf('.') != 1) val = val.substring(1);
            else break;
        }

        var indexOfPoint = val.indexOf(".");
        if (indexOfPoint == -1) {
            val = $.formatCommas(val);
        } else {
            val = $.formatCommas(val.substring(0, indexOfPoint)) + val.substring(indexOfPoint, val.length);
        }
        return val;
    },

    /**
     * 이율을 표시한다. 소수점 2번째 자리 까지 표시한다.
     * @param val
     * @return
     */
    $.toIrrt = function(val) {
        val = (Math.round((val-0)*100))/100;
        val = (val == Math.floor(val)) ? val + ".00" : ((val*10 == Math.floor(val*10)) ? val + "0" : val);
        val = String(val);
        return val;
    },

/**
 * 입력 받은 날짜에 입력 받은 년 수 만큼 더한다.
 * @param date 날짜 데이터 (yyyyMMdd)
 * @param amount 더할 년 수
 * @param pattern 날짜 패턴
 * @return 년을 더한 날짜
 */
$.addYears = function(date, amount, pattern) {
if(pattern == null || pattern == '') {
pattern = 'yyyyMMdd';
}
var dateObj = $.parseDate(date);
dateObj.setYear(dateObj.getFullYear() + amount);
return $.dateFormatObj(dateObj, pattern);
},

/**
 * 입력 받은 날짜에 입력 받은 월 수 만큼 더한다.
 * @param date 날짜 데이터 (yyyyMMdd)
 * @param amount 더할 월 수
 * @return 월이 더한 날짜
 */
$.addMonths = function(date, amount, pattern) {
if(pattern == null || pattern == '') {
pattern = 'yyyyMMdd';
}
var dateObj = $.parseDate(date);
dateObj.setMonth(dateObj.getMonth() + amount);
return $.dateFormatObj(dateObj, pattern);
},

/**
 * 입력 받은 날짜에 입력 받은 일 수 만큼 더한다.
 * @param date 날짜 데이터 (yyyyMMdd)
 * @param amount 더할 일 수
 * @return 일이 더한 날짜
 */
$.addDays = function(date, amount, pattern) {
if(pattern == null || pattern == '') {
pattern = 'yyyyMMdd';
}
var dateObj = $.parseDate(date);
dateObj.setDate(dateObj.getDate() + amount);
return $.dateFormatObj(dateObj, pattern);
},

/**
 * String 타입의 날짜 데이터를 Date 객체로 변환
 * @param date String 타입의 날짜 데이터
 * @return 변환된 날짜 객체
 */
$.parseDate = function(date) {
if(date.length != 8) return null;

var year = date.substring(0,4);
var month = date.substring(4,6);
var day = date.substring(6,8);

return new Date(year, month-1, day, 0, 0, 0, 0);
},

/**
 * 일치하는 문자를 찾아 모두 바꾼다.
 * @param str 변경 전 문자열
 * @param searchStr 찾을 문자
 * @param replaceStr 바꿀 문자
 * @return 변경된 문자열
 */
$.replaceAll = function(str, searchStr, replaceStr) {
while (str.indexOf(searchStr) != -1) {
str = str.replace(searchStr, replaceStr);
}

return str;
},

/**
 * HTML tag를 제거한다.
 * @param string 문자열
 * @return tag가 제거된 문자열
 */
$.stripHTMLtag = function(string) {
var objStrip = new RegExp();
objStrip = /[<][^>]*[>]/gi;
return string.replace(objStrip, "");
},
    ///////////////////////////////////////////////////////////////////////////////////////////////
    // Utils -End
    ///////////////////////////////////////////////////////////////////////////////////////////////

    ///////////////////////////////////////////////////////////////////////////////////////////////
    // 마스킹
    ///////////////////////////////////////////////////////////////////////////////////////////////
/**
 * 주민번호를 마스킹한다. (예:800212-1******)
 * @param jumin 주민번호
 * return 마스킹한 주민번호
 */
$.juminMasking = function(jumin) {
        if(jumin == null) return null;
        
        var juminLength = jumin.length;
        if(juminLength == 13)
            return jumin.substring(0,6) + '-' + jumin.substring(6,7) + '******';
        else if(juminLength == 14)
            return jumin.substring(0,8) + '******';
        else return jumin;
},

/**
 * 전화번호 숫자를 마스킹한다.
 * @param phone 전화번호
 * return 마스킹한 전화번호
 */
$.phoneNumMasking = function(phoneNum) {
        if(phoneNum == null) return null;
        
        var nPhoneNum = '';
        var numLength = phoneNum.length;
        var max = numLength - 2;

        for(var i=0; i<max; i++) {
            nPhoneNum += '*';
        }
        
        nPhoneNum += phoneNum.substring(max);
        
        return nPhoneNum;
},

/**
 * 전화번호를 마스킹한다. (예:010-**12-**12)
 * @param phone 전화번호
 * return 마스킹한 전화번호
 */
$.phoneMasking = function(phone) {
        if(phone == null) return null;
        
        var splitPhone = $.phoneFormat(phone).split("-");        
        
        var nPhone = '';
        var splitLength = splitPhone.length;
        
        switch(splitLength) {
            case 2 :      
                nPhone += $.phoneNumMasking(splitPhone[0]) + '-' + $.phoneNumMasking(splitPhone[1]);
                break;
            case 3 :
                nPhone += splitPhone[0] + '-' + $.phoneNumMasking(splitPhone[1]) + '-' + $.phoneNumMasking(splitPhone[2]);
                break;
            default :
                return phone;
        }
       
        return nPhone;
},

/**
 * 계좌변호를 마스킹한다. (예:1234******1234)
 * @param account 계좌번호
 * return 마스킹한 계좌번호
 */
$.accountMasking = function(account) {
        if(account == null) return null;
        
        var accountLength = account.length;
        if(accountLength <= 8) return account;
        
        var nAccount = '';
        
        nAccount += account.substring(0,4);
        
        var max = accountLength - 8;
        for(var i=0; i<max; i++) nAccount += '*';
        
        nAccount += account.substring(accountLength-4);
        
        return nAccount;
},

/**
 * 카드번호를 마스킹한다. (예:1234-****-****-1234)
 * @param card 카드번호
 * return 마스킹한 카드번호
 */
$.cardMasking = function(card) {
        if(card == null) return null;
        
        var fmtCard = $.cardFormat(card);
        var nCard = '';
        
        if(fmtCard.indexOf('-') > 0) {
            var splitCard = fmtCard.split('-');
            
            var cardLength = splitCard.length;
            if(cardLength <= 2) return card;
            
            nCard += splitCard[0] + '-';
            
            for(var i=1; i<cardLength-1; i++) {
                for(var j=0; j<splitCard[i].length; j++) {
                    nCard += '*';
                }
                nCard += '-';
            }
            
            nCard += splitCard[cardLength-1];
        } else {            
            var cardLength = card.length;
            if(cardLength <= 8) return card;
            
            nCard += card.substring(0,4);
            
            var max = cardLength - 8;
            for(var i=0; i<max; i++) nCard += '*';
            
            nCard += card.substring(cardLength-4);
        }
        return nCard;
},

/**
 * 단말기 일련번호를 마스킹한다. (예:********1234)
 * @param serial 단말기 일련번호
 * return 마스킹한 단말기 일련번호
 */
$.deviceSerialMasking = function(serial) {
        if(serial == null) return null;
        
        var serialLength = serial.length;
        if(serialLength <= 3) return serial;
        
        var nSerial = '';
        
        var max = serialLength - 4;
        for(var i=0; i<max; i++) nSerial += '*';
        
        nSerial += serial.substring(serialLength-4);
        
        return nSerial;
},

/**
 * USIM을 마스킹한다. (예:*********123)
 * @param usim USIM
 * return 마스킹한 USIM
 */
$.usimMasking = function(usim) {
return $.deviceSerialMasking(usim);
},

/**
 * 이름을 마스킹한다. (예:홍*동)
 * @param name 이름
 * return 마스킹한 이름
 */
$.nameMasking = function(name) {
        if(name == null) return null;

        var nameLength = name.length;
        switch(nameLength) {
            case 0 :
                return name;
            case 1 :
                return name;
            case 2 :
                return name.substring(0,1) + '*';
            case 3 :
                return name.substring(0,1) + '*' + name.substring(2);
            case 4 :
                return name.substring(0,1) + '**' + name.substring(3);
            default :
                return name.substring(0,1) + '**' + name.substring(3);
        }
},

/**
 * 주소를 마스킹한다. (예:서울특별시 중구 XXX 5가 827번지)
 * @param addr 주소
 * return 마스킹한 주소
 */
$.addrMasking = function(addr) {
        if(addr == null) return null;

        var splitAddr = addr.split(' ');
        var lengthAddr = splitAddr.length;
        if(lengthAddr < 3) return ad

        var nAddr = '';

        nAddr = splitAddr[0] + ' ' + splitAddr[1] + ' ';

        var max = splitAddr[2].length;
        for(var i=0; i<max-1; i++) {
            nAddr += '*';
        }
        nAddr += splitAddr[2].substring(max-1);

        for(var i=3; i<lengthAddr; i++) {
            nAddr += ' ' + splitAddr[i];
        }

        return nAddr;
},

/**
 * ID를 마스킹한다. (예:ab**cde)
 * @param id ID
 * return 마스킹한 ID
 */
$.idMasking = function(id) {
if(id == null) return null;

var idLength = id.length;
if(idLength < 3) return id;

        switch(idLength) {
            case 3 :
                return id.substring(0,2) + "*";
            case 4 :
                return id.substring(0,2) + "**";
            default :
                return id.substring(0,2) + "**" + id.substring(4);
        }
},

/**
 * 자동으로 다음  inputbox으로 이동한다.
 * @param param1 - input.id
 * @param param2 - maxlength 
 * @param param3 - taget input 
*/
$.moveAutoTab = function(param1,param2,param3)
{
/*
 * 접근성 이슈로 삭제
if($('#'+param1).val().length == param2)
{
$('#'+param3).focus(); 
}
*/
},

/**
 * 부가세 포함 금액을 산출한다.
 * (소수점이 있는 경우 셋째자리 이후절삭하며 둘째자리에서 반올림한다.)
 * @param price - 금액
*/
$.vatInclPrice = function(price)
{
if($.isNum(price,true)){
//var num = Number('1e'+1.1);
//return (price * 1.1).toFixed(2);
return Math.round((price * 1.1) * 100) / 100;
}
else{
return price;
}
},

반응형