Skip to content

Commit 93b24f3

Browse files
committed
refactor: finding formatRules logic
1 parent dc6d38f commit 93b24f3

4 files changed

Lines changed: 231 additions & 32 deletions

File tree

package/formatUtil/formatPhoneNumber/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { describe, expect, test } from "vitest";
2-
import { formatPhoneNumber } from "."; // 실제 함수 경로에 맞게 수정해주세요.
2+
import formatPhoneNumber from ".";
33

44
describe("formatPhoneNumber", () => {
55
describe("휴대폰 번호", () => {

package/formatUtil/formatPhoneNumber/index.ts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,18 @@ const formatRules = [
3434
},
3535
];
3636

37-
export const formatPhoneNumber = (phoneNumber: string): string => {
38-
if (!phoneNumber) {
39-
return "";
40-
}
37+
export default function formatPhoneNumber(phoneNumber: string): string {
38+
if (!phoneNumber) return "";
4139

4240
const digitsOnly = phoneNumber.replace(/\D/g, "");
4341

44-
for (const rule of formatRules) {
45-
if (rule.prefix && !digitsOnly.startsWith(rule.prefix)) {
46-
continue;
47-
}
42+
const matched = formatRules.find(
43+
(rule) =>
44+
(!rule.prefix || digitsOnly.startsWith(rule.prefix)) &&
45+
digitsOnly.length === rule.length
46+
);
4847

49-
if (digitsOnly.length === rule.length) {
50-
return digitsOnly.replace(rule.format, rule.replacement);
51-
}
52-
}
53-
54-
return digitsOnly;
55-
};
48+
return matched
49+
? digitsOnly.replace(matched.format, matched.replacement)
50+
: digitsOnly;
51+
}

package/formatUtil/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default as formatPhoneNumber } from "./formatPhoneNumber";

0 commit comments

Comments
 (0)