通过javascript中的给定电话号码检测国家/地区代码
作者:互联网
我有一个包含所有可用国家代码的对象.我想知道如何通过给定的电话号码获取国家/地区代码并显示相应的国家/地区名称.电话号码看起来像是16041234567(加拿大/美国1)或8601012345678(中国86)或其他任何在前面没有加号()的国家/地区电话号码.我只想获取国家/地区代码,然后知道如何显示名称.看起来该代码可以是1到4位数字.
解决方法:
第一答案:
只是一个简单的想法,为什么不从另一侧数.
从号码背面取下10个号码.您剩下的将是截断的国家/地区代码.
从您的示例:
num =“ 16041234567”;
代码= num.slice(0,num.length-10);
country_name = country_code_object [code];
此代码假定您的对象可以处理可变长度的代码(但是,如果需要,您可以始终缓存代码的开头.
断:中国不使用10号(单元格使用11)
固定:
在更彻底地研究国家代码之后,我认为它们是前缀树.这意味着您可以在一个班轮时间里逐个字符地检查
num = "16041234567";
country_code;
i = 1;
while (!country_code || i < num.length) {
country_code = country_code_obj[num.slice(0, i)];
i++;
}
国家/地区代码的性质将确保第一个有效的代码将是正确的. (我们可以想象这一定是真的,电话公司不知道您何时输入数字.他们只是知道您何时到达有效国家/地区代码的结尾)
标签:country-codes,javascript 来源: https://codeday.me/bug/20191122/2060712.html