Estoy usando grupos con nombre en un método de reemplazo y solo quiero trabajar con ese objeto de grupos, ya que puede tener una cantidad variable de grupos de captura. Como ejemplo:
function reFunc(match, p1, p2, p3, p4, offset, string, groups) { console.log('*****', groups); } "Bob Jones is the mayor of Dallas.".replace(/(?<first>\w+) (?<last>\w+) is the (?<position>\w+) of (?<city>\w+)/, reFunc); "Bob Jones is the mayor of Dallas, Texas.".replace(/(?<first>\w+) (?<last>\w+) is the (?<position>\w+) of (?<city>\w+), (?<state>\w+)/, reFunc);¿Hay alguna manera de simplemente ignorar todo excepto los grupos en la función de reemplazo, por ejemplo, algo como:
function reFunc(..., groups) { ... }Puede capturar todos los argumentos con la sintaxis del parámetro rest o usando la referencia de arguments , y luego tomar la última entrada de eso:
function reFunc(...groups) { groups = groups.pop(); console.log(groups); } "Bob Jones is the mayor of Dallas.".replace(/(?<first>\w+) (?<last>\w+) is the (?<position>\w+) of (?<city>\w+)/, reFunc); "Bob Jones is the mayor of Dallas, Texas.".replace(/(?<first>\w+) (?<last>\w+) is the (?<position>\w+) of (?<city>\w+), (?<state>\w+)/, reFunc);