Code kürzen mit regulären Ausdrücken

Cusco

Erfahrenes Mitglied
Hi,

ich habe heute folgene Funktion erstellt:

Code:
function komtrim(zeichenkette) { // Zeichenkette bereinigen
    zeichenkette = zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
    while(zeichenkette.match(/  /)) {
        zeichenkette = zeichenkette.replace (/  /g, ' ');
    }

    while(zeichenkette.match(/!!/)) {
        zeichenkette = zeichenkette.replace (/!!/g, '!');
    }

    while(zeichenkette.match(/\?\?/)) {
        zeichenkette = zeichenkette.replace (/\?\?/g, '?');
    }
    return zeichenkette;
}

Ich denke das die Schleifen mit einen Regulären Ausdruck ersetzt werden können, nur leider weiss ich nicht wie ich das machen soll. Die erste Zeile in der Funktion stammt von einem Beispiel im Web. Der Sinn der Funktion ist es alle doppelte Leerzeichen, Fragezeichen und Ausrufezeichen durch 1 Zeichen zu ersetzen.
 
Code:
function komtrim(zeichenkette) { // Zeichenkette bereinigen
    zeichenkette = zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '').replace (/ +/g, ' ').replace (/!+/g, '!').replace (/\?+/g, '?');
    return zeichenkette;

Wie wäre es mit sowas? (ungetestet)
 
Ich würde hier generell nach whitespaces suchen und durch ein Leerzeichen ersetzen. Also
Javascript:
replace (/\s+/g, ' ')
 
Ja habe es gerade gemerkt, das keine Zeilenumbrüche mehr gehen, die müssen aber erhalten bleiben, ich nehme das eine replace wieder raus.
 
Zurück