Ich habe eine Zeichenfolge und Nachricht:
str = "Test $0 $1 $2";
message = "Hi %2 Hello %2" ;
Jetzt möchte ich alle %2
-str
in Nachricht ersetzen. Ich bin mit RegExp wie unten,
message = message.replace(new RegExp("%2" , "g"), str);
Es funktioniert gut in Chrome und Firefox und Nachricht kommt als
erwartetmessage = "Hi Test $0 $1 $2 Hello $0 $1 $2"
Aber in Internet Explorer 11, es falschen Wert für Meldung geben, wie
message = "Hi Test %2 $1 $2 Hello %2 $1 $2"
In IE11 wird $0
(Unterzeichenfolge von str) durch %2
ersetzt. Jeder kann mir bitte dies vorschlagen.
Vielleicht möchten Sie schauen in der Dokumentation für ['ersetzen '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter). Es sieht so aus, als müssten Sie Ihre '$' Zeichen entgehen. – 4castle
Ihr Code ist wron, '"% 2 "' wird immer durch '" Test $ 0 $ 1 $ 2 "' ersetzt, daher lautet die resultierende Zeichenfolge: '" Hallo Test $ 0 $ 1 $ 2 Hallo '**' Test' ** '$ 0 $ 1 $ 2 "' – Hitmands
Ersetzen Sie $ 0 durch $ &, es funktioniert in jedem Browser. –