Как проверить, содержит ли номер телефона, введенный пользователем, код страны? - PullRequest
5 голосов
/ 26 июня 2010

Существует ли простой способ проверить, содержит ли номер телефона, введенный пользователем, код страны, и проверить правильность номера?Я не использую какие-либо конкретные форматы, сам номер должен состоять только из цифр, нет (s, - и т. Д. Возможна ли такая проверка без запроса страны пользователя? Хитрость в том, что я хочу работать со всемиЧисла во всем мире.

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

Или, может быть, было бы более разумно применить формат, например X-YYYYYYYY ... где X будет кодом страны или что-то вроде этого?

Ответы [ 3 ]

4 голосов
/ 26 июня 2010

Вот Библиотека Google для работы с телефонными номерами (на Java).Однако, поскольку Google также является магазином Python, я полагаю, что у них может быть где-нибудь доступная версия Python, или вы сможете извлечь то, что вам нужно, и перевести ее.

2 голосов
/ 29 сентября 2011

Число типа 247 8000 может быть:

  • местный номер 247 8000 в неуказанном районе в неуказанной стране, возможно +1 212 247 8000
  • местный номер 8000 в коде 247 в неуказанной стране, возможно +269 247 8000
  • местный номер 8000 в коде страны 247, а +247 8000

Без дальнейшего контекста сказать невозможно.

Символ + жизненно важен для идентификации части кода страны.

1 голос
/ 26 июня 2010

Я изучал этот предмет некоторое время.У нас есть огромная база данных с числами, никто не знает, есть ли у них странный код или нет.Общий ответ: это невозможно выяснить.У нас было несколько номеров, которые были действительными номерами США без кода страны (1) и действительными номерами некоторых других стран с кодом города.Но в 99% случаев вы можете проверить, равна ли длина числа 9, тогда код контроля отсутствует.Вы должны заставить пользователей вводить код страны.

...