Javascript正则表达式积极前瞻

Bri*_*ian 1 javascript regex debugging syntax

将正则表达式的开头和结尾定义word为捕获组中的边界的正确语法是什么,如下所示:

var $classes = $( 'body' ).attr('class'); // string 'foo bar sub-theme-home';
var regex = /sub-theme-(?=(\b))/;
var sub_theme = regex.exec($classes);
console.log(sub_theme[0]);
Run Code Online (Sandbox Code Playgroud)

这是匹配的sub-theme-,虽然我需要在我的捕获中包含它并进行字符串替换以删除它,但我很难找到我的(?-(\b))/捕获组的正确语法.似乎有积极的前瞻,sub-theme-应该是被忽略的部分,home应该被捕获...帮助?

Jef*_*ica 5

为什么不捕捉你正在寻找的字符串?

var $classes = $( 'body' ).attr('class'); // string 'foo bar sub-theme-home';
var regex = /sub-theme-(\w+)/;
var sub_theme = regex.exec($classes);
console.log(sub_theme[1]);
Run Code Online (Sandbox Code Playgroud)

查看更多有关括号子和的结果regex.exec(...)MDN.