2016-04-19 10 views
-1

mit dem folgenden Code kann die 1 in der Zeichenfolge.ersetzen "Index" Array-Zeichenfolge mit Javascript Regex

var match = /[0-9]+/.exec('[1][2]'); 
console.log(match); 

Wie bekomme ich die 2 und nicht die 1?

+0

Sie benötigen eine while-Schleife verwenden, finden Sie MDN für ein Beispiel: https: //developer.mozilla .org/de-DE/docs/Web/JavaScript/Referenz/Global_Objects/RegExp/exec Beachten Sie, dass Sie, wenn Sie eine Ersetzung durchführen möchten, die Methode exec nicht verwenden müssen, verwenden Sie String.prototype.replace mit der Option g Parameter. –

+0

Verwenden Sie 'var match = '[1] [2]'. Match (/ [0-9] +/g) .pop();' –

+0

der endgültige Code ist hässlich, aber es funktioniert. Vielen Dank! 'item.attr ({name: name.replace (name.match (/ [0-9] +/g) .pop(), clone.attr ('daten-ordem'))});' –

Antwort

0

Versuchen mit dieser Regex

console.log(/(\[[0-9]\])+/.exec('[1][2]')); 

Ich denke, es ist nur eine Frage der eckigen Klammern Flucht

+0

Sie können ' t Wiederholen Sie eine Erfassungsgruppe, da bei jeder Iteration die vorherige Erfassung mit der nächsten überschrieben wird. –

+0

Ja, aber er fragte nach der '2', ich nahm an, dass es die" neuste "sei, die zugehörige Antwort (als Duplikat gekennzeichnet) hat sowieso eine bessere Antwort :) – Pietro