/**
* 하이픈이 포함된 문자열 생성
* @param {string} value 하이픈을 삽입할 문자열
* @param {number[]} splittedSizes 하이픈 삽입을 위해 쪼개질 문자 길이 (ex. 010-0000-0000 -> [3,4] or [3,4,4])
* @returns 하이픈이 삽입된 문자열
*/
const addHyphen = (value, splittedSizes) => {
const result = [value];
if (!Array.isArray(splittedSizes) || splittedSizes.includes(NaN)) throw new TypeError('Type of splittedSizes should be Array<Number>');
splittedSizes.forEach((size) => {
const prev = result[result.length - 1].substring(0, size);
const next = result[result.length - 1].substring(size);
result[result.length - 1] = prev;
if (next) result.push(next);
});
return result.join('-');
};
사용 예시
export const formatBizNumber = (bizNumberValue) => {
const numberOnly = formatNumeric(bizNumberValue);
return addHyphen(numberOnly, [3, 2]);
};
export const formatPhoneNumber = (phoneNumberValue) => {
const numberOnly = formatNumeric(phoneNumberValue);
return addHyphen(numberOnly, [3, 4]);
};