Если данные присутствуют в фиксированном формате: {country_code} {space} {phone_digits}
, вы можете легко использовать строковые операции (регулярное выражение, разделение и т. Д.), Чтобы получить код страны. Чтобы определить, в какой стране представлен код, вы должны сопоставить его со списком известных кодов стран - либо сохранить их в своей базе данных, либо использовать веб-службу для проверки.
Возможным подходом является получение из базы данных кодов стран и сравнение вручную, когда вы найдете совпадение - в случае несоответствия формата. Это может быть подвержено ошибкам, поскольку коды стран также могут различаться по длине, и вы можете соответствовать неправильному. Несколько приемлемый подход, если нет другого выбора, состоит в том, чтобы вначале соответствовать самым длинным, а затем более коротким кодам, но нет никакой гарантии для недействительных совпадений. Чтобы полностью избежать проблемы, рассмотрите следующее предложение:
Если у вас есть контроль над тем, как сохраняются номера телефонов (в вашей базе данных или в любом хранилище, которое вы используете), я бы посоветовал вам хранить код страны в отдельном поле. Для базы данных SQL это будет означать, что у вас есть столбец для кода страны, а другой номер телефона. Затем вы можете легко извлечь код страны с абсолютной уверенностью и обработать ее любым способом.
Как видно из комментариев, этот формат является тем, что вы ожидаете от своих клиентов api. Если это так, вы должны попытаться применить некоторые ограничения к формату - заставить клиент передать код страны в качестве отдельного параметра или использовать соответствующий разделительный символ. Если это так, вы закончите анализ кода и определение страны. Клиент должен соответствовать желаемому формату.
О каком языке программирования вы говорите? – Raptor
, например. php/python – user2432443