我用Vue制作了一个自定义表单,其中有一个用于移动号码的字段,我使用Vue Int Tel输入包的国家代码下拉标记。
我从国家代码下拉列表中得到了一个国家拨号代码值。我想从拨号代码值中获取国家代码。例如,如果所选的国家是印度,而我的拨号代码值是+91,我应该如何从该特定的拨号代码值推断出国家代码,即IN ?
**我可以分别得到这两个值,但是我不能从拨号代码中推断出国家代码。
任何帮助将非常感激!
由于vue-tel-input
内部使用libphonenumber-js -你也可以使用它:
<template>
<vue-tel-input ref="tel" v-model="phone" />
</template>
import parsePhoneNumberFromString from 'libphonenumber-js';
export default
{
data()
{
return {
phone: '',
};
},
methods:
{
getCountryCode()
{
// vue-tel-input does not update the model if you have a default country,
// so we have to access its internal representation
// To avoid accessing internal data of vue-tel-input, you can either not use
// a default country, or provide the default country as a 2nd argument to the
// parsing function - parsePhoneNumberFromString(this.phone, this.defaultCountry)
const result = parsePhoneNumberFromString((this.$refs.tel || {})._data.phone);
return result.country;
}
}
不要忘记把这个包添加到你的项目npm install libphonenumber-js
中。
您可以像这样创建一个包含每个国家代码和数字前缀的对象:
country_codes = {
'+91': 'IN',
'+46': 'SE',
...
}
然后用这个来"翻译"两位数国家代码的字冠
country_codes['+46'] //returns 'SE'
在这里你可以找到所有的国家代码:https://countrycode.org/