Skip to content

phoneAuto ​

全球任意国家的电话号码:根据用户输入的区号选择掩码。与 tinyval-mask 的 phoneAuto 用法相同,但支持 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'] });

另请参阅 ​