javascript - 通过javascript中给定的电话号码检测国家代码

标签 javascript country-codes

<分区>

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

最佳答案

第一个答案:

只是一个快速的想法,为什么不从另一边算。

从数字背面取下 10 个数字。您剩下的将是 chop 的国家/地区代码。 从你的例子:

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

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

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++;
}

国家代码的性质将保证第一个有效的代码是正确的。 (我们可以想象这一定是真的,电话公司不知道你什么时候打完号码。他们只知道你什么时候到达有效国家代码的末尾)

关于javascript - 通过javascript中给定的电话号码检测国家代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19717833/

相关文章:

ios - 在 iOS 上自动获取用户所在国家/地区的最准确方法?

android - 有没有一种简单的方法来检索 ISO 3166-1 数字国家代码

javascript - 使用 javascript(客户端)获取访问者语言和国家代码

c# - ISO和奥林匹克国家代码之间的映射?

javascript - 在 Node js 中以 zip 格式从 amazon s3 存储桶下载图像

javascript - 如果特定单词出现在编辑器中,则更改它们的颜色

r - 国家代码包中是否有区分美洲的选项?

Javascript 克隆元素

java - JavaFX 2 小程序能否请求焦点并因此关注浏览器/选项卡?

javascript - 模 - 计算错误