object.replace( pat , '$$')
Beat
- javascript
0 1UnitedPower0 Beat
0 Matti Mäkitalo0 Beat
Hallo zusammen
Nach langer krankheitsbedingter Abstinenz bin ich wieder mal hier.
Ich habe folgendes Verhalten beobachtet:
var fillins="$"; var pat="x%%x"; pat = pat.replace( "%%", fillins ); alert(pat)
//alerts x$x
var fillins="$$"; var pat="x%%x"; pat = pat.replace( "%%", fillins ); alert(pat)
//alerts x$x
var fillins="$$$"; var pat="x%%x"; pat = pat.replace( "%%", fillins ); alert(pat)
//alerts x$$x
var fillins="$$$$"; var pat="x%%x"; pat = pat.replace( "%%", fillins ); alert(pat)
//alerts x$$x
Mir ist schleierhaft, warum hier das Zeichen '$' reduziert wird. Kann mir das jemand erklären und eventuell einen Tipp geben, wie ich das umgehen kann?
mfg Beat
Mir ist schleierhaft, warum hier das Zeichen '$' reduziert wird. Kann mir das jemand erklären und eventuell einen Tipp geben, wie ich das umgehen kann?
Das Dollar-Zeichen hat eine besondere Bedeutung, wenn es in der Ersatzzeichenkette in der string.replace-Methode verwendet wird.
Das Dollar-Zeichen hat eine besondere Bedeutung, wenn es in der Ersatzzeichenkette in der string.replace-Methode verwendet wird.
Besten Dank.
Ich war mir in der Tat der speziellen Bedeutung von $$ im Ersetzungsstring nicht bewusst.
mfg Beat
Hi,
Mir ist schleierhaft, warum hier das Zeichen '$' reduziert wird. Kann mir das jemand erklären und eventuell einen Tipp geben, wie ich das umgehen kann?
Mit $n (mit n eine positive Ganzzahl) kann man auf gecapturte (es tat ein wenig weh beim schreiben) Ausdrücke aus dem RegEx zugreifen. Will man ein $ haben, escapet man es durch $$. Ein einzelnes Dollar wird wohl als Fehler ignoriert. Daher
'$' wird ersetzt zu '$' (Fehlertoleranz)
'$$' wird ersetzt zu '$'
'$$$' wird zu '$$' (Fehlertoleranz: die ersten beiden $ ergeben ein Dollar, das dritte Dollar ist ein Fehler)
'$$$$' wird '$$'
Bis die Tage,
Matti
Matti
Danke dir auch, mit
var fillins="$a$$a$$$a$$$$";
var pat="x%%x";
pat = pat.replace( "%%", fillins.replace(/\$/g,'$$$$') );
alert(pat);
wird jetzt das Erwartete ausgegeben
mfg Beat