728x90
- target: regexp를 이용하여 특정 포맷으로 적용
- method:
function dataFormat(type, value, masking) {
var f_value;
var format;
// 숫자만 적용
value = value.replace(/[^0-9]/g, '');
switch(type) {
case 'card':
/* 카드번호 format(XXXX-XXXX-XXXX-XXXX) */
/* masking 적용시, '$1-****-****-$4'을 masking 인자로 전달 */
format = masking || '$1-$2-$3-$4';
f_value = value.replace(/(\d{4})(\d{4})(\d{4})(\d{4})/, format);
break;
case 'bizNo':
/* 사업자번호 format(XXX-XX-XXXXX)*/
format = masking || '$1-$2-$3';
f_value = value.replace(/(\d{3})(\d{2})(\d{5})/, format);
break;
case 'tel':
/* 전화번호는 일반/휴대폰 포함 형식이 다양해서 데이터에 따라 추가 및 수정 필요 */
if(value.length == 8) { // xxxx-xxxx
format = masking || '$1-$2';
f_value = vlaue.replace(/(\d{4})(\d{4})/, format);
}
else { // xx-xxx-xxxx, xx-xxxx-xxxx, xxx-xxx-xxxx, xxx-xxxx-xxxx
format = masking || '$1-$2-$3';
if(value.length == 11) {
f_value = vlaue.replace(/(\d{3})(\d{4})(\d{4})/, format);
}
else if(value.indexOf('02')==0) { // 지역번호 서울인 경우
if(value.length == 9)
f_value = vlaue.replace(/(\d{2})(\d{3})(\d{4})/, format);
else
f_value = vlaue.replace(/(\d{2})(\d{4})(\d{4})/, format);
}
else {
f_value = vlaue.replace(/(\d{3})(\d{3})(\d{4})/, format);
}
}
break;
default:
f_value = value;
}
return f_value;
}
- desc: 숫자만으로 이루어진 데이터를 case에 따라 포맷 적용
* 추가로 날짜(dayjs)나 금액 관련 세자리 콤마(numeral) 같은 포맷의 경우 library 사용
728x90