2016-02-08 3 views
1

У меня есть этот код:Как добавить пробел в регулярное выражение?

КОД JS:

const phone= /^\(?(\d{3})\)?[-]?(\d{3})[-]?(\d{4})$/; 

После выполнения этого кода имеет следующий вид

(123)132-1312 

Я хочу, чтобы добавить пустое пространство до последних скобках, как в пример ниже.

(123)132-1312 

Не могли бы вы рассказать мне, как принять изменения в коде, чтобы пробел?

Заранее благодарен!

EDIT:

text = $(this).val().replace(/(\d{3})(\d{3})(\d{4})/, "($1)$2-$3"); 
var testt=$(this).val().match(text); 

Я добавил этот код, чтобы позвонить здесь, как добавить пустое пространство ...

+2

Я думаю, что должны быть и другие вопросы задают то же самое. – RRK

+1

http://stackoverflow.com/questions/15472764/regular-expression-to-allow-spaces-between-words – cfprabhu

+0

Является ли пробел перед последней скобкой qptional или требуется? –

ответ

1

Это должно работать, как вам нужно:

/^\(?\s*(\d{3})\s*\)?[-]?(\d{3})[-]?(\d{4})$/ 
1

В зависимости от Wether вы всегда хотите пробел перед закрывающей скобкой или не можете:

^\(?(\d{3}\s?)\)?[-]?(\d{3})[-]?(\d{4})$

Фонд \s предназначен для пробелов. ? означает 0 или 1 появление предыдущего знака. если вы используете +, это один или несколько и * для 0 или более символов предыдущего знака.

Чтобы проверить регулярное выражение, вы всегда можете использовать regexpal

+0

Я отредактировал мой пост немного ... не могли бы вы рассказать мне, пожалуйста, как мне теперь меняться? – Marius

+0

попробуйте использовать это: 'text = $ (this) .val(). Replace (/ (\ d {3} \ s?) (\ D {3}) (\ d {4}) /," ($ 1) $ 2- $ 3 ");' – Fuujin

+0

Я создал jsfiddle для вас здесь https://jsfiddle.net/9mm24wev/ – Fuujin

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