TS: nur das letzte Vorkommen eines Strings entfernen

Beitrag lesen

Hello,

so, wie versprochen, meine Version:

Ersetze das n-te Vorkommen des Suchstrings im Input-String gegen den Ersetzungsstring, wenn occur==0, ersetze alle Vorkommen (was dann dem Replace entsprechen würde).

Da mag nun jeder selbst entscheiden, wie er das für sich selber noch modifizieren mag oder doch lieber die indexOf()-Methode benutzen mag. Die haben wir ja noch nicht fertig gesehen.

Für die Zählung des Vorkommens von hinten könnte man dann z. B. occur auch negativ einbauen. Vielleicht hat ja jemand Lust, mal zu überlegen, wie man das am effektivsten einbauen würde, also ohne doppelten Code zu schreiben 😉

    function replace_nth(input, search, replace, occur)
    {
        input = '|' + input + '|';
        var items = input.split(search);
        var result = '';
        
        for(n = 0; n < items.length -1; n++)
        {
            if (occur == 0 || n == occur - 1)
            {
                result += items[n] + replace; 
            }
            else 
            {
                result += items[n] + search; 
            }        
                
        }
        result += items[items.length-1];
        result = result.substring(1, result.length-1);

        return result;
    }

oder auf getscript.de

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es
Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.