123456789101112131415161718192021222324 |
- 'use strict';
- const cloneRegexp = require('clone-regexp');
-
- module.exports = (regexp, string) => {
- let match;
- const matches = [];
- const clonedRegexp = cloneRegexp(regexp, {lastIndex: 0});
- const isGlobal = clonedRegexp.global;
-
- // eslint-disable-next-line no-cond-assign
- while (match = clonedRegexp.exec(string)) {
- matches.push({
- match: match[0],
- subMatches: match.slice(1),
- index: match.index
- });
-
- if (!isGlobal) {
- break;
- }
- }
-
- return matches;
- };
|