57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
/**
|
|
* 문자열 마스킹 처리를 위한 유틸리티
|
|
*/
|
|
const StringMaskingUtil = {
|
|
|
|
// null, empty 체크
|
|
isValidString: function(str) {
|
|
return str != null && str !== '';
|
|
},
|
|
|
|
// 이름 마스킹 처리
|
|
maskName: function(name) {
|
|
if (!this.isValidString(name)) {
|
|
return name;
|
|
}
|
|
return name.length > 1 ?
|
|
name.substring(0, name.length - 1) + "*" :
|
|
name;
|
|
},
|
|
|
|
// 이메일 마스킹 처리
|
|
maskEmail: function(email) {
|
|
if (!this.isValidString(email) || !email.includes('@')) {
|
|
return email;
|
|
}
|
|
|
|
const parts = email.split('@');
|
|
if (parts.length !== 2) {
|
|
return email;
|
|
}
|
|
|
|
const localPart = parts[0];
|
|
let maskedLocal;
|
|
|
|
if (localPart.length <= 3) {
|
|
maskedLocal = localPart.substring(0, 1) +
|
|
'*'.repeat(localPart.length - 1);
|
|
} else {
|
|
maskedLocal = localPart.substring(0, localPart.length - 3) + '***';
|
|
}
|
|
|
|
return maskedLocal + '@' + parts[1];
|
|
},
|
|
|
|
// 휴대폰 번호 마스킹 처리
|
|
maskMobileNumber: function(number) {
|
|
if (!this.isValidString(number)) {
|
|
return number;
|
|
}
|
|
|
|
const parts = number.split('-');
|
|
if (parts.length === 3) {
|
|
return parts[0] + '-****-' + parts[2];
|
|
}
|
|
return number;
|
|
}
|
|
}; |