phoneAuto
Телефон любой страны мира: маска выбирается по коду, который вводит пользователь. Работает так же, как phoneAuto из tinyval-mask, но знает 245 стран.
Сигнатура
ts
function phoneAuto(options?: { defaultCountry?: PhoneCountry; countries?: PhoneCountry[] }): PhoneAutoMask
interface PhoneAutoMask extends Mask {
country(value: string): CountryInfo | undefined;
}
interface CountryInfo {
code: PhoneCountry; // 'jp'
dial: string; // '81'
flag: string; // '🇯🇵'
}Параметры
| Опция | Описание |
|---|---|
defaultCountry | Страна по умолчанию. Номер без + считается местным, национальная приставка отбрасывается: 09012345678 → +81 90-1234-5678. Пустое поле показывает её шаблон и флаг |
countries | Среди каких стран определять. Удобно, если сервис работает в нескольких странах: остальные номера не примутся как valid |
Особенности
- Как различаются страны с общим кодом (
+1,+7,+44) — в Странах и форматах. - Чтобы ввести номер другой страны, когда поле показывает страну по умолчанию, достаточно набрать
+. - Значение без маски — все цифры с кодом страны:
819012345678. valid—true, только если номер заполнен по маске определённой страны.
Примеры
ts
import { mask, unmask, isValid } from 'tinyval-mask';
import { phoneAuto, countryName } from 'tinyval-phone';
const tel = phoneAuto({ defaultCountry: 'jp' });
mask('09012345678', tel); // '+81 90-1234-5678'
mask('+55 11961234567', tel); // '+55 (11) 96123-4567'
tel.country('+1 242'); // { code: 'bs', dial: '1', flag: '🇧🇸' }
countryName(tel.country('+55')!.code, 'en'); // 'Brazil'
isValid('+81 90-1234-5678', tel); // true
// только несколько стран
const eu = phoneAuto({ defaultCountry: 'de', countries: ['de', 'at', 'ch', 'fr', 'it'] });См. также
- phone, detectCountry, phoneCountries
- loadFlag — иконка флага для
country.code - vMask — маска в поле Vue