Ich habe ein Formular ersetzen, wo die Namen Attribute bekommen aktualisiert, aber das Problem ist im mit mehrdimensionalen Werte wie folgt:Suchen und n-te Auftreten von [klammert] Ausdruck in String
<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...
Ich brauche zu ändern . der Wert innerhalb der eckigen Klammern mit JavaScript nicht Ganz gleich, welche Position sie sind in ich habe versucht, den folgenden regulären Ausdruck unter Verwendung des Wertes zwischen den eckigen Klammern entsprechen:
/(?<=\[)[^\]]*(?=\])/g
aber dies entspricht allen Vorkommen, und was ich tun muss, ist irgendwie das n-te Vorkommen zu finden und zu ersetzen.
Oder wenn es eine andere Möglichkeit gibt, die Werte in den eckigen Klammern zu finden und zu ersetzen, ohne reguläre Ausdrücke zu verwenden, bin ich ganz Ohr.
Vielen Dank im Voraus
Gelöst
Dieser letzte Code ist wie folgt:
$('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 nicht ganz klar, was Ihr zu tun versuchen! Mit dem obigen Beispiel können Sie die erwartete Ausgabe anzeigen ... – ManseUK
Willkommen bei StackOverflow. Ich sehe, dass diese Frage nicht sehr viele Ansichten bekommt, daher habe ich Ihren Titel so bearbeitet, dass er die Frage, die Sie stellen, klar widerspiegelt - wie man das n-te Vorkommen eines Ausdrucks in Klammern findet und ersetzt. –