22 lines
716 B
TypeScript
22 lines
716 B
TypeScript
export function isValidPhone(number: string): boolean {
|
|
const clean = number.replace(/[\s.-]/g, ""); // hapus spasi, titik, strip
|
|
const regex = /^(?:\+62|62|0)8\d{7,12}$/;
|
|
return regex.test(clean);
|
|
}
|
|
|
|
export function normalizePhoneNumber({ phone }: { phone: string }) {
|
|
// Hapus semua spasi, tanda hubung, atau karakter non-digit (+ tetap dipertahankan untuk dicek)
|
|
let cleaned = phone.trim().replace(/[\s.-]/g, "");
|
|
|
|
// Jika diawali dengan +62 → ganti jadi 62
|
|
if (cleaned.startsWith("+62")) {
|
|
cleaned = "62" + cleaned.slice(3);
|
|
}
|
|
// Jika diawali dengan 0 → ganti jadi 62
|
|
else if (cleaned.startsWith("0")) {
|
|
cleaned = "62" + cleaned.slice(1);
|
|
}
|
|
|
|
return cleaned;
|
|
}
|