Tengo un formulario en el que los atributos nombre se actualizan, pero el problema es im utilizando valores multidimensionales de la siguiente manera:Buscar y reemplazar enésima aparición de la expresión [entre corchetes] en la cadena
<input type="text" name="questions[0][question]" />
<input type="text" name="questions[0][order]" />
<input type="text" name="questions[0][active]" />
<input type="text" name="answers[0][1][answer]" />
<input type="text" name="answers[0][2][answer]" />
<input type="text" name="answers[0][3][answer]" />
<input type="text" name="questions[1][question]" />
<input type="text" name="questions[1][order]" />
<input type="text" name="questions[1][active]" />
etc...
tengo que cambiar . el valor dentro de los corchetes con JavaScript sin importar la posición que están en he intentado usar la siguiente expresión regular para que coincida con el valor entre los corchetes:
/(?<=\[)[^\]]*(?=\])/g
pero esto coincide con todas las ocurrencias, y lo que tengo que hacer es de alguna manera encontrar y reemplazar la enésima ocurrencia.
O si hay otra forma de encontrar y reemplazar los valores dentro de los corchetes sin usar expresiones regulares, soy todo oídos.
Gracias de antemano
Resueltas
Este código final es la siguiente:
$('input', this).each(function(){
var name = $(this).attr('name');
var i = 0;
$(this).attr('name', name.replace(/\[.+?\]/g,function (match, pos, original) {
i++;
return (i == 1) ? "[THE REPLACED VALUE]" : match;
}));
});
Im no del todo claro en lo que estás tratando de hacer! usando su ejemplo anterior puede mostrar la salida esperada ... – ManseUK
Bienvenido a StackOverflow. Veo que esta pregunta no está recibiendo muchos puntos de vista, por lo que he editado su título para reflejar claramente la pregunta que está haciendo: cómo encontrar y reemplazar la enésima aparición de una expresión entre corchetes. –