Коды стран - довольно запутанная тема, но достаточно стандартная, чтобы с помощью некоторого обслуживания программиста вы могли ее решить.
Вы можете идентифицировать код страны по его начальной подпоследовательности.Выполните следующий алгоритм:
Создайте простую базу данных - можно даже сохранить ее в виде простого файла и загрузить в словарь в памяти - кодов стран.
Рекурсивно от n = 1 до 3, проверьте, соответствуют ли первые n цифр номера телефона какому-либо коду страны.Если это так, это код вашей страны.Если это не удастся, попробуйте 3, это не правильный код страны.
Если вам нравится иметь дело с квази-неоднозначностями.Если вы когда-либо видели совпадение между кодами стран, например, если вы видите «1340» для Виргинских островов, то это потому, что в некотором, вероятно, неактуальном смысле это подмножество кода страны «1» для кодов стран США, которые иногда отражают геополитические ситуации, и обычно это выражаетсяразделив код страны на следующую цифру.«1» будет официальным кодом страны, но то, что будет более интересным для вас, зависит от вашей заявки.
Примечание : требуется техобслуживание, когда мыслят как советскиеПроисходит распад профсоюзов.
Теперь все становится еще сложнее, когда вам приходится иметь дело с тем фактом, что у некоторых # уже есть коды стран, а у некоторых - нет, и тому подобное.Единственный найденный код страны, в котором код страны может также указываться в качестве ведущего кода страны, - это Сингапур - я думаю, это был +65-65...
.С приличной точностью вы можете использовать бизнес-логику в следующем формате:
- Следите за форматом чисел в США: (xxx) xxx-xxxx и т. Д.
- Используйте тот факт, что только определенные цифрыдлины могут происходить в данных странах.Есть документы на это, если вы ищете достаточно сложно.например, все американские номера имеют длину 10, японские номера могут быть длиной 9 или 10. Это может дать вам дополнительную информацию.
- Игнорировать начальные 0 для большинства стран.Италия и Кот-д'Ивуар - единственные два исключения, которые я нашел, у них могут быть действительные лидирующие нули.В противном случае это просто местная телекоммуникационная конвенция о пребывании внутри страны, обычно.