2013-09-05 3 views
0

пытается передать переменную в многомерное регулярное выражение, я могу заставить ее работать вне функции, но не уверен, как заставить ее работать внутри функции или почему она соответствует [1 ], кажется, возвращает null. Много информации о замене, но не поиске слов после ключевого слова.Передача переменной в регулярное выражение в функции

вот что у меня есть

var s = 'match my word after this word'; 
    function returnWordAfter(theSentence, theWord){ 
    var TheRegEx = new RegExp("/"+theWord+"\s(\w*)/"); 
    var matches = theSentence.match(TheRegEx, ''); 
    return matches[1]; 
    } 
    var matchedWord = returnWordAfter(s, "this"); 
    console.log(matchedWord); 

ответ

0

Не помещайте окружающих / с и избежать обратной косой черты (\):

new RegExp(theWord + "\\s(\\w*)"); 

var theWord = "hello"; 
var theRegEx = new RegExp(theWord + "\\s(\\w*)"); 
"hello world".match(theRegEx) // => ["hello world", "world"] 
+0

ах, это, кажется, работает. это была глупая ошибка. Благодарю. – Lukasz

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