Вопрос по regex, ruby – Проверка номера телефона в рубине

6

Каковы правила проверки номера телефона в Северной Америке? Кроме того, есть лиregex Я могу использовать? Есть ли драгоценный камень, чтобы сделать это?

Вот несколько правил, которые я имею в виду

A 10 digit number no special characters A positive number
Читай Подтверждение номера телефона. Также Есть ли камень, который нормализует и форматирует номера телефонов США в рубине? не является дубликатом, но может содержать полезную информацию. Gilles

Ваш Ответ

6   ответов
7

Взгляни на:http: //rubygems.org/search utf8 =% E2% 9C% 93 & запроса = телефон + номер

Похоже, что он будет делать то, что вам нужно - он по существу реализует регулярное выражение для проверки номера телефона:http: //rubygems.org/gems/validates_phone_numbe

Для США, Канады (Бермудские острова, Багамские острова ... и т. Д. И всех +1) существуют другие правила, которым должно следовать регулярное выражение. Первая цифра (после +1) должна быть 2-9.

Полный список см .:http: //en.wikipedia.org/wiki/North_American_Numbering_Pla

Драгоценный камень validates_phone_number требует рельсов, которые могут быть хитами для OP. vlasits
Этот драгоценный камень разрешает такие цифры, как 911 555 1234, что неверно. DrHyde
4

Попробуй эт

Объяснение

@"
(?:         # Match the regular expression below
               # Match either the regular expression below (attempting the next alternative only if this one fails)
      \+          # Match the character “+” literally
         ?           # Between zero and one times, as many times as possible, giving back as needed (greedy)
   |           # Or match regular expression number 2 below (the entire group fails if this one fails to match)
      \b          # Assert position at a word boundary
)
[0-9]       # Match a single character in the range between “0” and “9”
   {10}        # Exactly 10 times
\b          # Assert position at a word boundary
"
3

Правила, которые я использовал в мой код Perl для проверки телефонных номеров NANP пришло из электронного письма, отправленного Дугом Ньюэллом в список рассылки telnum-l, который я воспроизвожу ниже, несколько упрощенный, чтобы рассмотреть только полные 10-значные номера:

The number 10 digits long.  We'll call this pattern:
    ABC DEF XXXX

A may not be 0 or 1.

B may not be 9.

A+B may not be 37 or 96.

B+C may not be 11.

D may not be 0 or 1.

Вы можете извлечь регулярное выражение из Libphonenumber @ метаданные, но будь осторожен, это ЖЕНЩИНА КАК АД.

1

@Twilio есть API, который может сделать это:

Twilio Lookup - это REST API, который может:

Убедитесь, что номер телефона существует Преобразовать любой международный номер телефона в его местный стандарт Определите, является ли номер телефона сотовым, VOIP или стационарным телефоном Раскройте информацию о носителе телефонного номера

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

0

https: //github.com/travisjeffery/validates_phone_numbe который будет делать то, что вы хотите, если у вас есть какие-либо вопросы или проблемы, дайте мне знать, пожалуйста.

-1
class Phne
def ad
puts "Enter your phone number"
re=gets.chomp
if re= ~/\b^([0-9]{10})$\b/
puts "Valid phone number"
else
puts "Invalid phone number"
end
end
end

obj=Phne.new
obj.ad

Похожие вопросы