2016-06-08 4 views
-2

Wie ersetzen Sie einen String-Wert durch einen anderen in JavaScript?Wie ersetze ich einen String, der sqare Klammern in Javascript enthält?

Ich habe eine Zeichenfolge, die eine Menge dieser Teilzeichenfolge enthält - Items[0]. Wie ersetze ich all dies zu Items[1], unter Berücksichtigung, dass '0' ist ein dynamischer Wert, den ich von einer Variablen bekomme.

Ich habe die replace-Methode verwendet und einige 'RegExp' versucht, aber konnte das nicht tun. Ich denke es ist wegen dieser eckigen Klammern:

str.replace(new RegExp("Items[" + j + "]", "g"), "Items[" + (j - 1) +"]")); 

Jede Hilfe wird geschätzt. Danke :)

+0

Verwenden Sie '/\[(.*)\]/ g' –

+1

Zeigen Sie uns Ihren Code bitte – Andreas

+0

@PraveenKumar, wo sollte ich meine Variable anhängen? – Shanid

Antwort

1

Sie verwenden new RegExp, um den regulären Ausdruck zu erstellen. In der Regex müssen Sie \ verwenden, um die [ zu umgehen, da es sonst eine besondere Bedeutung hat. Da Sie eine Zeichenfolge verwenden müssen, um die Regex zu erstellen (da Sie den Wert Ihrer Variablen enthalten müssen), auch müssen Sie die \ in der Zeichenfolge zu entkommen, so dass wir am Ende mit zwei:

var variable = 0; 
 
var rex = new RegExp("\\[" + variable + "]", "g"); 
 
var str = "This has Item[0] in more than one Item[0] place."; 
 
var str = str.replace(rex, "Item[" + (variable + 1) + "]"); 
 
// If you want a dynamic replacement ^^^^^^^^^^^^^^^^^^^ 
 
// In this case, I used the value plus one. 
 
console.log(str);

die "g" ist ein Flag "global" (in der Zeichenfolge, nicht nur das erste Vorkommen) bedeutet.

+0

Ich versuchte es mit einem einzigen '\' früher, ich werde das jetzt versuchen. – Shanid

+0

@ T.J. Crowder: Danke, es funktioniert jetzt. :) – Shanid

Verwandte Themen