JavaScript RegEx: Как создать шаблон RegEx, используя определенное значение из переменной? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть эта переменная:

var search = "dummy";
var replace = "<strong>" + search + "</strong>";
var contents = "my contents are here and this dummy value should be bolded...";

contents.replace(/search/gi, replace);

Итак, как мне установить эту переменную "search" в моем шаблоне RegEx, а затем в настройках / gi для моего соответствия.

Ответы [ 3 ]

4 голосов
/ 23 декабря 2011

попытайтесь

new RegExp('yourSearchHere', 'gi');

вы также должны знать о том факте, что вы должны избегать определенных последовательностей.Btw.вам нужно дважды избегать их, когда вы создаете регулярное выражение, подобное этому (new RegExp ('\\ n') -> соответствует \ n)

3 голосов
/ 23 декабря 2011

Вы также можете создать регулярное выражение, используя объект RegExp:

search = "dummy";
x = new RegExp(search,"gi");

var search = "dummy";
var replace = "<strong>" + search + "</strong>";
var contents = "my contents are here and this dummy value should be bolded...";
window.alert(contents.replace(x, replace));

http://jsfiddle.net/YhqjY/

1 голос
/ 23 декабря 2011

Вы можете использовать обратных ссылок : $ 1 запоминает то, что вы сопоставили с регулярным выражением. Это происходит потому, что искомое слово помещается в круглые скобки, которые образуют группу захвата.

var contents = "my contents are here and this dummy value should be bolded...";


function makeStronger( word, str ) {
    var rxp = new RegExp( '(' + word +')', 'gi' );
    return str.replace( rxp, '<strong>$1<\/strong>' );
}

console.log( makeStronger( 'dummy', contents ) );
// my contents are here and this <strong>dummy</strong> value should be bolded...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...