Mar*_*ein 9 c# regex asp.net asp.net-3.5
我从移动设备接收电话号码,格式与国际格式不同.
场景(ZA格式仅用于示例):
数据库中的注册号码始终为国际格式:+27827177982
我收到的号码可能有所不同,例如+27827177982= 27827177982= 0827177982- 号码的国际前缀是+27
即使我没有收到国际格式,我如何将其与国际格式相匹配?
请记住:
我不能只针对1个区域进行转换.
是否有一种简单的方法来比较所有地区的手机号码?
前缀的数量范围参考字符:http://en.wikipedia.org/wiki/List_of_country_calling_codes
我的想法:
比较数字的最后9个字符,这将排除区域前缀...但每个区域是否只有'9个字符,不包括前缀'?
循环通过数据库比较电话号码几次,例如检查最后9个号码 - 如果不匹配 - 检查最后10个等等(但可能导致不需要的匹配)
任何帮助将不胜感激
您可能需要考虑使用库.例如,Google的libphonenumber库中有一个C#端口.特别是,这两种方法值得研究(强调我的)
isNumberMatch - 获得两个数字是否相同的置信度.
getExampleNumber/getExampleNumberByType - 为所有国家/地区提供有效的示例编号,并可选择指定所需的示例电话号码类型.