phone-mask-uz
Version:
A flexible React component for formatting and validating Uzbekistan phone numbers
33 lines (32 loc) • 1.19 kB
JavaScript
/**
* O'zbekiston telefon raqamini formatlaydi
* @param value - Kiruvchi telefon raqami
* @returns Formatlangan telefon raqami
*/
export var normalizePhoneNumber = function (value) {
// Faqat raqamlar va + belgisini qoldirish
var cleanValue = value.replace(/[^+\d]/g, "");
// Agar +998 bilan boshlanmasa, default qiymat qaytarish
if (!cleanValue.startsWith("+998"))
return "+998 ";
// +998 dan keyingi raqamlarni ajratib olish
var strippedValue = cleanValue.slice(4).replace(/\s/g, "");
// Raqamlarni guruhlarga bo'lish: XX XXX XX XX
var parts = [
strippedValue.slice(0, 2),
strippedValue.slice(2, 5),
strippedValue.slice(5, 7),
strippedValue.slice(7, 9), // XX
];
// Bo'sh bo'lmagan qismlarni birlashtirish
return "+998 ".concat(parts.filter(Boolean).join(" "));
};
/**
* Telefon raqami to'g'ri formatda ekanligini tekshiradi
* @param phone - Tekshiriladigan telefon raqami
* @returns true agar raqam to'g'ri formatda bo'lsa
*/
export var isValidPhoneNumber = function (phone) {
var cleanNumber = phone.replace(/\D/g, "");
return cleanNumber.length === 12 && cleanNumber.startsWith("998");
};