如何从以下MSISDN检测国家/地区代码?
塞浦路斯(+ 357XXXXXXXX) - 11位
芬兰(+ 358XXXXXXXXXX) - 13位
塞尔维亚(+ 381XXXXXXX) - 10位数
不同国家/地区的国家/地区代码以及MSISDN中的位数都不同,因此无法单独匹配整个国家/地区的国家/地区代码。
那么,如何从特定的MSISDN获取国家/地区代码?
答案 0 :(得分:1)
如果数据以固定格式存在:yarn.scheduler.capacity.<queue-path>.capacity
yarn.scheduler.capacity.<queue-path>.user-limit-factor
yarn.scheduler.capacity.maximum-applications
/ yarn.scheduler.capacity.<queue-path>.maximum-applications
yarn.scheduler.capacity.maximum-am-resource-percent
/ yarn.scheduler.capacity.<queue-path>.maximum-am-resource-percent
,您可以轻松使用字符串操作(正则表达式,拆分等)来获取国家/地区代码部分。要确定代码所代表的国家/地区,您应将其与已知国家/地区代码列表进行匹配 - 将这些代码存储在数据库中或使用Web服务进行验证。
一种可能的方法是从数据库中获取国家/地区代码,并在找到匹配项时手动进行比较 - 以防格式不一致。这可能容易出错,因为国家/地区代码的长度也可能不同,您可以匹配错误的代码。如果没有其他选择,一种可接受的方法是首先匹配最长的,然后是较短的代码 - 但是不能保证无效匹配。要完全避免此问题,请考虑下一个建议:
如果您可以控制电话号码的持久性(在您的数据库或您使用的任何存储空间中),我建议您将国家/地区代码存储在单独的字段中。对于SQL数据库,这意味着您有一个国家代码列和另一个电话号码列。然后,您可以绝对确定地轻松提取国家/地区代码,并以您喜欢的任何方式处理它。
从评论中可以看出,您希望api客户端提供相关格式。如果是这种情况,您应该尝试对格式强制执行某些约束 - 使客户端将国家/地区代码作为单独的参数传递,或使用适当的分隔符号。如果是这样,您将最终解析代码并确定国家/地区。客户端必须符合所需的格式。