2016-02-22 3 views
0

Я делал регулярное выражение, которое может иметь номер телефона любой длины и может иметь (+ и) в любом месте в номере.Как предотвратить регулярное выражение регулярных выражений

^[\s()+-]*([0-9][\s()+-]*){6,20}$ 

Но это регулярное выражение принимает пробелы в нем, что неверно. может кто-нибудь помочь мне изменить это?

+0

Вы не хотите пространства, так что удалить '\ s' пробельную сокращенную класс символов. Я также думаю, что вам нужно заменить '*' (ноль или более) на '?' (Один или ноль). –

ответ

0

Удалить класс символов \s из шаблона регулярного выражения, чтобы избежать совпадения пробелов. Также избежать скобок () с обратными косыми чертами, как они метасимволы:

^[()+-]*([0-9][()+-]*){6,20}$ 
+0

Нельзя выходить из круглых скобок внутри класса символов. –

+0

Вы могли бы указать конкретное правило в какой-либо документации? – RomanPerekhrest

+0

[MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Writing_a_regular_expression_pattern): * Специальные символы, такие как точка ('.') и звездочка (' * ') не являются специальными внутри набора символов, поэтому их не нужно экранировать. * Скобки являются одним из этих символов. –

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