1

我想知道正则表达式产生的捕获组的数量。有没有比以下更好的方法?

function getRegExpCaptureGroupsNum(r) {
    return Array.prototype.slice.call(new RegExp(r.source + '|').exec(''), 0).length - 1
}
4

1 回答 1

2

我认为您不需要Array.slice这里的方法。这就足够了:

function getRegExpCaptureGroupsNum(r) {
    return RegExp(r.source + '|').exec('').length - 1;
}
于 2012-05-06T07:57:08.680 回答