====== ES6 RegEx iterator ====== Данный пример возвращает итератор, который потом можно использовать для **forEach** или для **for** 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); }