Skip to content

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'] });

См. также ​