Пара круглых скобок (без символа «?» В качестве первого символа, указывающего на другое поведение) будет захватывать содержимое в группу.
В вашем примере первый элемент массива - это полное совпадение, а последующие элементы - любые совпадения группы.
Возможно, будет понятнее, если ваш код будет выглядеть примерно так:
var g = "123456".match(/.(.).(.)./);
Это будет соответствовать пяти символам, помещая второй и четвертый в группы 1 и 2 соответственно, таким образом, выводя 12345,2,4
Если вы хотите чистую группировку без захвата содержимого, используйте синтаксис (?:...)
, часть ?:
указывает на группу без захвата. (Существуют различные групповые вещи, такие как lookaheads и другие забавные вещи .)
Дайте мне знать, если это ясно, или дальнейшее объяснение поможет?