23 lines
456 B
TypeScript
23 lines
456 B
TypeScript
/** Normalize Iranian/local input to E.164 (e.g. +989121111111). */
|
|
export function toE164CellNumber(input: string): string {
|
|
const digits = input.replace(/\D/g, "");
|
|
|
|
if (!digits) {
|
|
return "";
|
|
}
|
|
|
|
if (digits.startsWith("98")) {
|
|
return `+${digits}`;
|
|
}
|
|
|
|
if (digits.startsWith("0")) {
|
|
return `+98${digits.slice(1)}`;
|
|
}
|
|
|
|
if (digits.length === 10 && digits.startsWith("9")) {
|
|
return `+98${digits}`;
|
|
}
|
|
|
|
return `+${digits}`;
|
|
}
|