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'] });另请参阅
- phone、detectCountry、phoneCountries
- loadFlag ——
country.code对应的国旗图标 - vMask —— Vue 输入框中的掩码