我有这样一个字符串:33123456789(法语电话号码)。我想在不知道国家的情况下提取国家代码(33)。例如,如果我有另一部来自另一个国家的手机,它应该可以工作。我使用谷歌图书馆https://code.google.com/p/libphonenumber/.
如果我知道国家,那很酷,我可以找到国家代码:
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
int countryCode = phoneUtil.getCountryCodeForRegion(locale.getCountry());
但是我找不到一种在不了解国家的情况下解析字符串的方法。
在这里您可以保存电话号码为国际格式化的电话号码
internationalFormatPhoneNumber = phoneUtil.format(givenPhoneNumber, PhoneNumberFormat.INTERNATIONAL);
它以国际格式94 71 560 4888返回电话号码
所以现在我得到的国家代码是这样的
String countryCode = internationalFormatPhoneNumber.substring(0,internationalFormatPhoneNumber.indexOf('')).replace('+', ' ').trim();
希望这对你有帮助
基于上面发布的一个答案,我保留了一个方便的助手方法来处理这个问题:
进口:
import com.google.i18n.phonenumbers.NumberParseException
import com.google.i18n.phonenumbers.PhoneNumberUtil
功能:
fun parseCountryCode( phoneNumberStr: String?): String {
val phoneUtil = PhoneNumberUtil.getInstance()
return try {
// phone must begin with '+'
val numberProto = phoneUtil.parse(phoneNumberStr, "")
numberProto.countryCode.toString()
} catch (e: NumberParseException) {
""
}
}
好的,我加入了谷歌的libphonenumber(https://groups.google.com/forum/?hl=en
如果我的电话号码以“”开头,我不需要在参数中设置country。以下是一个例子:
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
// phone must begin with '+'
PhoneNumber numberProto = phoneUtil.parse(phone, "");
int countryCode = numberProto.getCountryCode();
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}
我的电话号码是字符串,如“91 96001 64500”(从google places API获取数据),我想提取电话号码(不带国家代码)以及国家代码,而不知道国家(国家可以是任何国家)。我怎样才能在弗利特做到这一点。 注意:已经有另一个完全相同的问题被问到,从电话号码[libphonenumber]中提取代码国家,但它是针对android的,我希望它是针对Flatter的。
我看到了一些与我要求的相似的问题,但似乎没有什么符合要求的。 我处于需要处理通话记录并使用电话号码确定国家的位置。拨打的号码可以是任何国家,例如: 44 7899455120-英国 34 965791845-西班牙 355 788415235-阿尔巴尼亚 显然,如果所有的呼叫代码都是两位数的话,这个世界将是美好的,但事实并非如此。目前,我有一个数据库,里面有国家及其相关代码,为了匹配,我需要有效地
问题内容: 我想从iOS 9上的CNContact获取国家代码和电话号码。我尝试了很多事情,但找不到方法。我获得的最佳结果是打印: 这是我的方法: 我想要的是countryCode和数字的值。有什么想法如何在Swift中访问它们吗?谢谢! 问题答案: 不幸的是,由于它们是私有的,您无法获得它们。 这行得通,但是如果您在此行中做某事, 您的应用很可能会被拒绝。 您可以在这里看到所有可以使用的好东西。
我需要在UITextField中显示电话号码格式作为占位符。我怎么能那样做? 对于国家选择,我使用下面提到的库,它提供了针对用户选择的国家的国旗和国家代码。 https://github.com/NikKovIos/NKVPhonePicker 选择国家后,我需要显示所选国家的电话号码格式,提交该电话号码时,我必须验证电话号码。 我还发现,第三方(PhoneNumberKit)的灵感来源于谷歌的l
我可以在Android系统中检测来电,但问题是我想知道那个电话号码的国家代码,这样我就可以分析它是国家号码还是国际号码。我知道libphonenumber,但它需要事先知道地区代码才能获得国家代码,如示例所示 它已经知道把作为参数。但是我们不知道这个数字是否为我们所知,那么我们如何分析这个数字。
我正在使用google库将国际电话号码转换为国家号码。 的一个示例是919744012345 我期望的是“9744012345”(请参阅印度的移动电话号码),但我得到的是带前导零的“09744012345”。 如何正确转换国际电话号码?