2012-05-06 3 views
0

Я хотел бы знать количество групп захвата, создаваемых регулярным выражением. Есть ли лучший способ, чем следующее?Извлечь количество групп захвата в любом произвольном Javascript-регулярном выражении?

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

ответ

1

Я не думаю, что вам нужен метод Array.slice. Этого было бы достаточно:

function getRegExpCaptureGroupsNum(r) { 
    return RegExp(r.source + '|').exec('').length - 1; 
} 
+0

Ой, если вы правы ^^. Прошло уже больше недели, и никто не придумал что-то лучшее, поэтому я буду принимать этот ответ как можно лучше. – jcayzac