object.replace( pat , '$$')
    
Beat
    
    
      
    
  - javascript
- 0 1UnitedPower- 0 Beat
 
- 0 Matti Mäkitalo- 0 Beat
 
 nicht angemeldet
 nicht angemeldetHallo 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