JavaScript正则表达式匹配不';我不回全场比赛

JavaScript正则表达式匹配不';我不回全场比赛,javascript,regex,Javascript,Regex,我在这里发布了一个示例: 下面是JavaScript: var content = 'This is my content which contains KEYWORD and should return seven words. '; var regex = new RegExp('(?:(?:\w+\W*){0,3})' + 'keyword' + '(?:(?:\W*\w+){0,3})', 'gi'); var excerpts = regex.exec(content); conso

我在这里发布了一个示例:

下面是JavaScript:

var content = 'This is my content which contains KEYWORD and should return seven words. ';
var regex = new RegExp('(?:(?:\w+\W*){0,3})' + 'keyword' + '(?:(?:\W*\w+){0,3})', 'gi');

var excerpts = regex.exec(content);
console.log(excerpts[0]);
返回“关键字”,而不是“包含关键字且应返回的内容”


我不知道发生了什么事。我可能缺少一个符号/标志或使用了错误的函数。我试过的在线正则表达式测试人员说正则表达式是正确的,但我无法得到正确的回报。救命啊

您只需要避开反斜杠,因为您是从
新RegExp
构造创建regex的:

var content = 'This is my content which contains KEYWORD and should return seven words. ';
var regex = new RegExp('(?:(?:\\w+\\W*){0,3})' + 'keyword' + '(?:(?:\\W*\\w+){0,3})', 'gi');

var excerpts = regex.exec(content);
alert(excerpts[0]);

双重转义
\w
\\w
\w
\\w
@ahamilton 9没关系,你错过了一些不一定容易捕捉到的东西:)
(\\w+\\s){3}KEYWORD (\\w+\\s){2}\\w+