我正在接收来自移动设备的电话号码,格式随国际格式而异。
场景(ZA格式仅用于示例) :
数据库中的注册号码总是国际格式:+27827177982
我收到的数字可能有所不同,例如+27827177982 = 27827177982 = 0827177982 -数字的国际前缀是+27
如何将它与国际格式相匹配,即使我没有收到国际格式?
记住:
我不能只做一个区域的转换。
有没有一种简单的方法来比较所有地区的手机号码?
前缀在字符引用数量上的范围:电码
我的想法:
任何帮助都将非常感谢
发布于 2013-07-11 15:18:55
您可能需要研究如何为此使用一个库。例如,谷歌的降钙素库有一个C# 港在此。特别是,这两种方法可能值得研究(强调我的方法)。
isNumberMatch -获得了关于两个数字是否可能相同的信心水平。 getExampleNumber/getExampleNumberByType -为所有国家/地区提供有效的示例号码,并可选择指定需要哪种类型的示例电话号码。
发布于 2013-07-11 15:19:07
在大多数国家(美国是一个明显的例外),非国际数字以0开头,因此解决方案如下:
0,请删除它并添加国际国家代码+。
对此没有任何简单的答案,因为国际上没有规定电话号码是如何工作的。
发布于 2013-07-11 15:32:40
像这样的东西怎么样。这是我头上写的:
string sourcePhoneNumber = "....";
string phoneNumber = "....";
int baseRegionCountryCode = 44;
if (phoneNumber.StartsWith("0") && !phoneNumber.StartsWith("00"))
{
phoneNumber = phoneNumber.SubString(0, 1);
phoneNumber = String.Format("{0}{1}", baseRegionCountryCode, phoneNumber);
}
else if (phoneNumber.StartsWith("+"))
{
phoneNumber = phoneNumber.Replace("+", "00");
}
if (sourcePhoneNumber == phoneNumber)
{
// do something awesome....
}https://stackoverflow.com/questions/17597206
复制相似问题