/** * 문자열 마스킹 처리를 위한 유틸리티 */ 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; } };