/**
 * 하이픈이 포함된 문자열 생성
 * @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]);
};