2013-07-03 2 views
0

Может ли кто-нибудь помочь с регулярным выражением. Я пытаюсь отформатировать номер телефона и обрабатывать диапазон расширений. Я попытался использовать диапазон [1-5], но это не работает.Javascript регулярное выражение числовой диапазон

$(".phone").text(function(i, text) { 
    if(text.length == 10) { //this portion works fine 
     text = text.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3"); 
     return text; 
    }else if (text.length > 10) { //this is where I need help 
     text = text.replace(/(\d{3})(\d{3})(\d{4})(\d{[1-5]})/, "($1) $2-$3 x$4"); 
     return text; 
    } 
}); 

Есть ли регулярное выражение для обработки ряда чисел здесь?

+2

Вы имеете в виду '\ d {1,5}'? – Bergi

ответ

1

Ваше использование {[1-5]} недействительно. {и} указывают, что количество совпадений находится между двумя номерами, содержащимися внутри него (любой параметр может быть опущен), в то время как [1-5] соответствует одному символу из 1, 2, 3, 4 или 5. Вам необходимо:

text = text.replace(/(\d{3})(\d{3})(\d{4})(\d{1,5})/, "($1) $2-$3 x$4"); 

вместо этого. Для получения дополнительной информации см. this QuickStart о повторении.

+0

Спасибо, это сработало отлично! – Brosto

+1

Рад помочь! Я добавил ссылку на руководство, которое даст вам дополнительную информацию, если вам это нужно. –

2

Да, опустите квадратные скобки и используйте запятую.

\d{1,5} 
Смежные вопросы