这是代码
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
仅匹配..它从不包含在结果中。
现在我们在read
ie 之后的位置,我们将在i
..here 再次ing
匹配(由于\w*
),它给出了一个空结果,因为read 和 ing之间没有任何内容。
您可以使用\w+(?=ing\b)
来避免空结果
/\w*(?=ing\b)/g
在这里,您正在使用*
这意味着没有或更多,因此它会在读取部分后"read"ing
捕获两者。使用 + 表示一个或多个。""ing
read