2013-09-16 16 views
-1

потребность строк совпадает все, кроме содержания внутри paranthesisКак заменить строку регулярным выражением в javascript?

str = Aries (march--something) 

я хочу раздеться Овен (динамический текст) и пространства и скобкой.

Я пробовал:

/([^\(]*)?\(([^\)]*)?\)/ 

не работает.

+8

Показать, что вы пробовали до сих пор пожалуйста. – Jerry

+1

Этот сайт был очень полезен для меня, когда я изучал регулярные выражения: http://www.regular-expressions.info/reference.html – Gary

+0

Я пробовал это [(Овен \() | \)], и он работает ... но текст Овен динамичен – tv4free

ответ

0

Пока нет вложенности скобок следующей будет работать:

var str = 'Aries (march--something)'; 
var r = str.replace(/\([^)]*\)/g, '()'); 
//=> "Aries()" 
0

Вы пытаетесь соответствовать шаблону, который исключает внутреннюю подстроку, но регулярное выполнение выражения в JavaScript на самом деле не поддерживает обратные ссылки, как это было бы сделано на более мощном языке.

Стандартный способ обращения к этому javascript - использовать метод replace строкового объекта, который принимает второй параметр, который является функцией. Эта функция вызывается с результатами совпадения, что позволяет вам рекомбинировать соответствующие группы по мере необходимости.

Вот код для Вашего случая:

var str = "Aries (march--something)"; 
var result = str.replace(/([^\s]+)\s*(\()[^\)]*(\))/, function(match, g1, g2, g3) { return g1+g2+g3; }); 
Смежные вопросы