You could wrap it in an iterator :-)
http://www.es6fiddle.net/hxoczoqg/
```javascript
function* match(regex, haystack){
var {source, ignoreCase} = regex;
var newRegex = new RegExp(source, ignoreCase ? 'gi' : 'g');
var m = null;
while (m = newRegex.exec(haystack)) {
yield m;
}
}
var input = "I have 5 dogs, 3 cats, and 49 ants.";
for (let num of match(/\d+/, input)) {
console.log(num);
}
```
On Wed, Jul 16, 2014 at 12:53 AM, Axel Rauschmayer <[email protected]> wrote:
> Yes, the /g flag is confusing, because the regular expression kind of
> turns into an iterator. I’d much prefer an actual iterator-based API that
> doesn’t mutate the regular expression.
>
> On Jul 16, 2014, at 9:26 , Alex Vincent <[email protected]> wrote:
>
> r = /\u0020+$/g; p = r.exec(" "); q = r.exec(" "); JSON.stringify([p, q])
> // "[[\" \"],null]"
>
> Why does calling exec the second time generate null? When I try the
> regular expression without the /g flag, I get:
> // "[[\" \"],[\" \"]]"
>
>
>
> --
> "The first step in confirming there is a bug in someone else's work is
> confirming there are no bugs in your own."
> -- Alexander J. Vincent, June 30, 2001
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
>
> --
> Dr. Axel Rauschmayer
> [email protected]
> rauschma.de
>
>
>
>
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss