这是代码
var str = 'a girl is reading a book!';
var reg =  /\w*(?=ing\b)/g;
var res = str.match(reg);
console.log(res);
结果是 ["read",""] 在 chrome 中。
我想问为什么结果中有“”。
这是代码
var str = 'a girl is reading a book!';
var reg =  /\w*(?=ing\b)/g;
var res = str.match(reg);
console.log(res);
结果是 ["read",""] 在 chrome 中。
我想问为什么结果中有“”。
这是预期的行为
Firstread被捕获,因为它后面跟着ing.Hereing仅匹配..它从不包含在结果中。
现在我们在readie 之后的位置,我们将在i..here 再次ing匹配(由于\w*),它给出了一个空结果,因为read 和 ing之间没有任何内容。
您可以使用\w+(?=ing\b)来避免空结果
/\w*(?=ing\b)/g 
在这里,您正在使用*这意味着没有或更多,因此它会在读取部分后"read"ing捕获两者。使用 + 表示一个或多个。""ingread