KG U+ 자바스크립트
///////////////////////////////////////////////////////////////////////////////////////////////
// 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("
");
$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;
}
},
'기타정보' 카테고리의 다른 글
분야별 무료 제작툴, 기획 , 디자인 , 코드 , 검색엔진, 유저 관리, 이메일, 서버리스, 데이터베이스, 채팅, 푸쉬알림, 피드, 분석, 시간 관리 (0) | 2020.01.30 |
---|---|
jQuery 기반 미니챠트 라이브러리, jquery.peity.min.js (0) | 2020.01.28 |
포탈(Portal) 웹 템플릿 정리 (0) | 2020.01.26 |
MYSQL 기반의 무한 게시판 만들기 (0) | 2020.01.26 |
코딩 빠르게 배우는 방법은? (0) | 2020.01.26 |