2013-08-20 3 views
1

Я пытаюсь соответствовать что-то вроде [allchar] с регулярным выражением и быть в состоянии вытащить его и заменить его другим содержаниемрегулярное выражение для [allchars]

Вот что я пытаюсь

var text = "[abc123.;.] this is more content"; 
var replacewith = "[contentreplacedwith]"; 

reg = new RegExp("/\[{1}.*?\]{1}/g"); 
if(reg.test(text)) 
{ 

    txt = $('#message').val().replace(text,'[' + replacewith + ']'); 
    console.log(txt); 
} 

результат должен быть

[contentreplacedwith] this is more content 
+0

с верхней части головы. Я не знаю js regex, но попробую '/ \ [[^ \]] * \]/g'. Не знаю, где положить идентификатор группы. Поэтому вам придется это понять. – cgTag

+2

Что такое 'new RegExp ("/\ [{1}. *? \] {1}/g ");'? Это не то, как вы создаете объекты регулярного выражения. Regex ** литералы ** обозначаются '//flags'. Объекты Regex могут быть созданы путем передачи шаблона с помощью 'new RegExp (« pattern »,« flags »)', а не строковой версии литерала. Читайте о них и здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions – Ian

+0

1) Это полезно, если вы можете включить фактический результат вашего текущего кода вместе с ожидаемым результатом , 2) FYI, вам не нужен символ '{1} - предполагается, что символ в регулярном выражении встречается один раз. – Michelle

ответ

2
reg = new RegExp("\\[.*?\\]", "g"); 
x = "[abc123.;.] this is more content"; 
console.log(x.replace(reg, "[contentreplacedwith]")); 

Если вы используете RegExp конструкцию или нет необходимости передавать / разделители, а параметры, подобные g для глобальных, являются вторым аргументом.

+0

+1, но не '' \\ [[^ \]] *? \\] "' лучше работать? это мой опыт. – cgTag

+1

@MathewFoscarini: обратные косые черты должны быть удвоены внутри двойных кавычек, а знак вопроса после звездочки - это то, что делает совпадение не жадным (хватайте как можно меньше символов, чтобы сделать все регулярное выражение успешным). В этом случае '. *?' Эквивалентно '[^]] *' (и знак вопроса не нужен). – 6502

+2

OMG. Я думаю, что это первый раз, когда кто-то объяснил, что означает greety, что было легко понять. Благодарю. – cgTag

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