dedlfix: Mehrfaches ersetzen mit Regex

Beitrag lesen

Tach!

f = f[1].replace(/a_/g, 'ä').replace(/o_/g, 'ö').replace(/u_/g, 'ü');
Gibt es da eine bessere Lösung mit nur einem "replace"?

Mir fällt da nur eine mit einem Array und einer for-Schleife ein. Dadurch wird es jedoch erst ab sagen wir mal 5 Ersetzugen wartungsärmer.

Das Problem ist ja schon, wie das Suchmuster zu definieren wäre. Du willst ja nicht nacheinander stehende Zeichen suchen, sondern irgendwo das a_ und irgendwo das o_ und irgendwo das u_. Also kannst du nur diese drei Zeichen mit einem Oder verknüpft suchen. Und dann musst du im Ersetzungsteil unterscheiden, welches der drei Zeichen du hast und entsprechend ersetzen. Das geht zwar auch mit einer Funktion, darin dann aber mit einem switch oder geschachtelten if. So wird es jedenfalls nicht einfacher.

dedlfix.