const matches = (text, pattern) => ({
[Symbol.iterator]: function * () {
const clone = new RegExp(pattern.source, pattern.flags);
let match = null;
do {
match = clone.exec(text);
if (match) {
yield match;
}
} while (match);
}
});
И пример использования.
for (const match of matches('abcdefabcdef', /ab/g)) {
console.log(match);
}