• Es gibt nach dem Softwareupdate eine Reihe von Änderungen und Neuerungen in unserem Forum. Genaueres dazu findet Ihr in dieser Ankündigung. Hinweise, Kritik, Anregungen, Lob und Tadel bitte hier diskutieren.

replace()-Frage

Mikael Blomkvist

Normande
Mitglied seit
30.08.15
Beiträge
574
Hallo zusammen, ich bin nebenbei Mit-Administrator einer Seite, deren Software im Hintergrund auf der der Wikipedia-Projekte basiert. Dort führe ich teilweise Wartungsarbeiten durch, die den Quelltext bereinigen und um mir hier die Arbeit zu erleichtern, nutze ich dazu ein Javaskript, dass ich entsprechend füttere.

Solange es darum geht, ein Wort durch ein anderes zu ersetzen oder einfach nur ein Wort zu löschen, ist das auch mit der Funktion überhaupt kein Problem, schwierig wird es allerdings, wenn die Ersetzung davon abhängen soll, was vor oder hinter dem Ausdruck steht. Da ich einigermaßen rudimentär mit Javascript umgehen kann, mir aber das Hintergrundwissen und die Erfahrung fehlt, möchte ich hier mal die Experten fragen, wie ich die Formel einsetzen muss.
Code:
return {text: oldText.replace(/ersetzen/g, "ersetzt")};

Steht jetzt das Wort „nicht“ vor dem ersetzen, dann soll es auch nicht ersetzt werden, wie stelle ich das dar?
Code:
return {text: oldText.replace(/[^nicht ]ersetzen/g, "ersetzt")};


Funktioniert hier nicht, weil ich hier Probleme mit den bekomme, die am Ende stehen sollen. Kann mir hier jemand weiterhelfen? Sollte das unverständlich sein, einfach fragen, dann versuche ich gerne, es noch genauer zu erklären. Danke!
 

zilVerGFX

Macoun
Mitglied seit
26.12.08
Beiträge
118
Moin Moin,

ich bin mir nicht ganz sicher wonach du suchst.

Hier findest du erstmal eine gute Einführung in reguläre Ausdrücke.

schwierig wird es allerdings, wenn die Ersetzung davon abhängen soll, was vor oder hinter dem Ausdruck steht.
Wenn ich das richtig verstanden habe, dann suchst du z.B. nach sowas:

"Das ist [replace]ein[/replace] Test" => Alles zwischen [replace] & [/replace] soll ersetzt werden:

Code:
var oldText = "Das ist [replace]ein[/replace] Test";

// Gibt aus "Das ist kein Test"
console.log( oldText.replace(/\[replace\](.*?)\[\/replace\]/g, "kein" )  ) ;

Zum Debuggen von regulären Ausdrücken ist übrigens Debuggex ganz nett.
 
  • Like
Wertungen: Mikael Blomkvist