2015-06-01 6 views
3

Как я могу определить код страны из следующих MSISDN?Определение кода страны MSISDN

Кипр (+ 357XXXXXXXX) - 11 цифр

Финляндия (+ 358XXXXXXXXXX) - 13 цифр

Сербия (+ 381XXXXXXX) - 10 цифр

Разные страны имеют разное количество цифр в их страновом коде, а также в их MSISDN, поэтому нет никакого способа сопоставления кода страны со всем номером.

Итак, как я могу получить код страны из определенного MSISDN?

+1

О каком языке программирования вы говорите? – Raptor

+0

, например. php/python – user2432443

ответ

1

Если данные присутствуют в фиксированном формате: {country_code} {space} {phone_digits}, вы можете легко использовать строковые операции (регулярное выражение, разделение и т. Д.), Чтобы получить код страны. Чтобы определить, в какой стране представлен код, вы должны сопоставить его со списком известных кодов стран - либо сохранить их в своей базе данных, либо использовать веб-службу для проверки.

Возможным подходом является получение из базы данных кодов стран и сравнение вручную, когда вы найдете совпадение - в случае несоответствия формата. Это может быть подвержено ошибкам, поскольку коды стран также могут различаться по длине, и вы можете соответствовать неправильному. Несколько приемлемый подход, если нет другого выбора, состоит в том, чтобы вначале соответствовать самым длинным, а затем более коротким кодам, но нет никакой гарантии для недействительных совпадений. Чтобы полностью избежать проблемы, рассмотрите следующее предложение:

Если у вас есть контроль над тем, как сохраняются номера телефонов (в вашей базе данных или в любом хранилище, которое вы используете), я бы посоветовал вам хранить код страны в отдельном поле. Для базы данных SQL это будет означать, что у вас есть столбец для кода страны, а другой номер телефона. Затем вы можете легко извлечь код страны с абсолютной уверенностью и обработать ее любым способом.


Как видно из комментариев, этот формат является тем, что вы ожидаете от своих клиентов api. Если это так, вы должны попытаться применить некоторые ограничения к формату - заставить клиент передать код страны в качестве отдельного параметра или использовать соответствующий разделительный символ. Если это так, вы закончите анализ кода и определение страны. Клиент должен соответствовать желаемому формату.

+0

Спасибо за ваш ответ, я немного изменил свой вопрос, между кодом страны и номером адресата нет разделителя, это именно то место, где я застрял, как я могу узнать, до какой длины у меня есть рассматривать как код страны? Любое предложение будет оценено по достоинству. – user2432443

+0

Это действительно худший случай. Вы случайно знаете что-то другое, чтобы ограничить ваши догадки - как в стране, где телефон? Эти телефоны поступают из вашего приложения или из другого места? Будет полезно добавить эту информацию к вопросу, а в комментарии - просто ping при редактировании –

+0

Это похоже на то, что кто-то ударил мое приложение http: // myip/file? Msisdn = XXXXXXX & bla = bla & bla = bla, мне нужно определить код страны из MSISDN Нет, я не знаю страну, из которой у вас телефон, вот что мне нужно выяснить – user2432443

Смежные вопросы