2016-06-05 2 views
-1

Я хочу сделать Regex для проверки номера телефона, который позволяет только:REGEX для номера телефона - Руби

7 цифр (5557865), который отформатирован так же, как в примере.

Я довольно незнакомый с регулярным выражением, иначе я бы справился с этим сам. Надеюсь, это достаточно информации, дайте мне знать, если вам нужно что-нибудь еще.

+0

Какой пример? ....... – sawa

+0

В скобках – Bitwise

ответ

3

Рабочий пример https://regex101.com/r/oZ2yQ0/1

\(\d{7}\) 

\(matches the character (literally 
\d{7} match a digit [0-9] 
    Quantifier: {7} Exactly 7 times 
\) matches the character) literally 
+0

Можете ли вы рассказать о том, как я должен поместить это в модель для проверки? Я не видел, чтобы это работало. – Bitwise

+0

Это правильно, но вам, вероятно, нужен какой-то якорь или граница. – pguardiario

3

Если это просто, чтобы соответствовать 7-значный номер, вы можете использовать \ д {7} или [0-9] {7}.

+0

Можете ли вы рассказать о том, как я должен поместить это в модель для проверки? Я не видел, чтобы это работало. – Bitwise

+0

Cameron, если вы используете веб-инфраструктуру, такую ​​как Ruby on Rails, и для этого нужен синтаксис, это важная информация, которая должна быть в вашем вопросе. –

1

может быть только с

/\d{7}/ #or 
/\d{1..7}/ #or 
/\d[0-9]{7}/ 

\ д матчей цифр и {7} число цифр.

1

Там несколько способов, чтобы справиться с этим:

# Ensure the number consists entirely of seven digits, nothing else. 
number.match(/\A\d{7}\z/) 

# Remove all non-digit characters (\D) and test that the length is 7. 
number.gsub(/\D/, '').length == 7 

# Test that this is either NNN-NNNN or NNNNNNN. 
number.match(/\A\d\d\d\-\d\d\d\d\z/) 

Обычно вы хотите, чтобы ваши методы проверки, как снисходительны, насколько это возможно, все еще обеспечивая вещи действительны.

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