0

试图将一个变量传递给一个强大的正则表达式,我可以让它在函数之外工作,但不知道如何让它在函数内工作,或者为什么它 match[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);
4

1 回答 1

0

不要放置周围/的 s 并转义反斜杠 ( \):

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

var theWord = "hello";
var theRegEx = new RegExp(theWord + "\\s(\\w*)");
"hello world".match(theRegEx) // => ["hello world", "world"]
于 2013-09-05T15:30:10.187 回答