globe: Platzhalter in einer URL ersetzen

Beitrag lesen

n'abend,

var platzhaltername = "PLATZHALTER";

var regexp = new RegExp("" + platzhaltername + "(\d+)", "g");
function ersetzungsfunktion (treffer, nummer) {
return texte[nummer];
}
var url = url.replace(regexp, ersetzungsfunktion);

  
Wo du gerade [String.replace](http://de.selfhtml.org/javascript/objekte/string.htm) mit Callback-Funktion empfiehlst, fällt mir mal wieder auf, dass die Javascript-Dokumentation eben dieses nicht behandelt. Ohne es zu wissen, würde ich beispielsweise nicht auf die Idee kommen, dass alle "Capure-Blocks" als Argument übergeben werden:  
~~~javascript
var text = 'sss123ttt&%$',  
    pattern = new RegExp( '(\\w+)((\\d{3})([a-z]+))(\\W+)' ),  
    replaceCallback = function( match, buchstaben, dreiZahlenUndKleinbuchstaben, dreiZahlen, kleinBuchstaben, sonderzeichen ){  
      // kompletter gefundener expression-match  
      alert( match );  
      // erster Capture-Block: (\\w+)  
      alert( buchstaben );  
      // zweiter Capture-Block: ((\\d{3})([a-z]+)) -- von außen nach innen  
      alert( dreiZahlenUndKleinbuchstaben );  
      // dritter Capture-Block: (\\d+)  
      alert( dreiZahlen);  
      // vierter Capture-Block: ([a-z]+)  
      alert( kleinBuchstaben );  
      // fünfter Capture-Block: (\\W+)  
      alert( sonderzeichen );  
      // ersetzen durch Rückgabewert  
      return 'ersetzt...';  
    };  
  
text.replace( pattern, replaceCallback );

Und für die überkandidelten der Hinweis, dass dieser Spaß im IE5 wohl nicht funktioniert...

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|