在javascript中通过给定的电话号码检测国家/地区代码[关闭]

2024-01-04

我有一个包含所有可用国家/地区代码的对象。我想知道如何通过给定的电话号码获取国家/地区代码并显示相应的国家/地区名称。电话号码将类似于 16041234567(加拿大/美国 +1)或 8601012345678(中国 +86)或前面没有加号(+)的任何其他国家/地区的电话号码。我只想获取国家/地区代码,然后我知道如何显示名称。看起来代码可以是 1 到 4 位数字。


第一个答案:

快速思考一下,为什么不从另一边数呢?

从号码背面取下 10 个号码。您留下的将是截断的国家/地区代码。 从你的例子来看:

num = "16041234567"; code = num.slice(0, num.length-10); country_name = country_code_object[code];

此代码假设您的对象可以处理可变长度代码(但如果需要,您始终可以缓冲代码的前面。

BROKEN:中国不使用 10 号码(单元格使用 11)

使固定: 在更全面地研究了国家/地区代码之后,我意识到它们是前缀树。这意味着对于班轮时间,您可以逐个字符地检查

num = "16041234567";
country_code;
i = 1;
while (!country_code || i < num.length) {
    country_code = country_code_obj[num.slice(0, i)];
    i++;
}

国家/地区代码的性质将保证第一个有效的代码是正确的。 (我们可以想象这一定是真的,电话公司不知道您何时完成输入号码。他们只知道您何时到达有效国家/地区代码的末尾)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在javascript中通过给定的电话号码检测国家/地区代码[关闭] 的相关文章

随机推荐