我想知道正则表达式产生的捕获组的数量。有没有比以下更好的方法?
function getRegExpCaptureGroupsNum(r) {
return Array.prototype.slice.call(new RegExp(r.source + '|').exec(''), 0).length - 1
}
答案 0 :(得分:2)
我认为您不需要Array.slice
方法。这就足够了:
function getRegExpCaptureGroupsNum(r) {
return RegExp(r.source + '|').exec('').length - 1;
}