diff --git a/src/addons/matchrecursive.js b/src/addons/matchrecursive.js index 9008207..6c3b9eb 100644 --- a/src/addons/matchrecursive.js +++ b/src/addons/matchrecursive.js @@ -238,7 +238,7 @@ export default (XRegExp) => { } } - if (global && !sticky && vN && vN[0] && str.length > lastOuterEnd) { + if (global && output.length > 0 && !sticky && vN && vN[0] && str.length > lastOuterEnd) { output.push(row(vN[0], str.slice(lastOuterEnd), lastOuterEnd, str.length)); } diff --git a/tests/spec/s-addons-matchrecursive.js b/tests/spec/s-addons-matchrecursive.js index 70319cd..b8f0384 100644 --- a/tests/spec/s-addons-matchrecursive.js +++ b/tests/spec/s-addons-matchrecursive.js @@ -155,12 +155,11 @@ describe('XRegExp.matchRecursive addon:', function() { valueNames: ['between', 'left', 'match', 'right'] }) ).toEqual([]); - // TODO: Change behavior to match test (don't return `between` value with full string) - // expect( - // XRegExp.matchRecursive('.', '<', '>', 'g', { - // valueNames: ['between', 'left', 'match', 'right'] - // }) - // ).toEqual([]); + expect( + XRegExp.matchRecursive('.', '<', '>', 'g', { + valueNames: ['between', 'left', 'match', 'right'] + }) + ).toEqual([]); }); });