23 lines
746 B
TypeScript
23 lines
746 B
TypeScript
/**
|
|
* South African phone number utilities (mirrors backend/src/utils/whatsapp.js logic).
|
|
*/
|
|
|
|
/**
|
|
* Normalise a raw phone input to the international SA format (27XXXXXXXXX).
|
|
* Returns null if the input is not a valid SA mobile number.
|
|
*/
|
|
export function normalizeZAPhone(raw: string | null | undefined): string | null {
|
|
if (!raw) return null;
|
|
let digits = raw.replace(/\D/g, '');
|
|
if (digits.startsWith('0') && digits.length === 10) digits = '27' + digits.slice(1);
|
|
if (/^27\d{9}$/.test(digits)) return digits;
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Returns true when the value is a valid SA mobile number (any common format).
|
|
*/
|
|
export function isValidZAPhone(raw: string | null | undefined): boolean {
|
|
return normalizeZAPhone(raw) !== null;
|
|
}
|