String.split eigenheiten

Issue #6 resolved
Garfield Arbuckle created an issue

Die split methode verhält sich nicht wie gewohnt (V8 oder Spidermonkey).

";".split(";")

V8/Spidermonkey ergebnis: ["", ""] (Array mit 2 leeren strings)

Knuddels ergebnis: [""] (Array mit einem leeren string)

"a;".split(";")

V8/Spidermonkey ergebnis: ["a", ""]

Knuddels ergebnis: ["a"]

Comments (3)

  1. Dennis Dudek

    Als Workaround:

    if(!String.prototype.hasOwnProperty("fixsplit")) {
        String.prototype.fixsplit = function(sep, limit) {
            limit = limit | 0;
            var arr = [];
            var tmp = this.toString();
            var i = -1;
            while(true) {
                i = tmp.indexOf(sep);
                if(i==-1)
                    break;
                var part = tmp.substring(0,i);
                arr.push(part);
                if(limit > 0 && arr.length == limit)
                    return arr;
    
    
                tmp = tmp.substring(i+sep.length);
            }
            arr.push(tmp);
    
    
            return arr;
        };
    }
    

    https://jsfiddle.net/c3kx773e/3/

  2. Knuddels repo owner

    Die Split-Methode wird bereits vielfach verwendet. Wir halten dieses Verhalten für einsteigerfreundlicher und werden es deshalb dabei belassen.

  3. Frederic Leitenberger (privat)

    Wenn man die JS-Version auf 1.8 setzt ist dies korrigiert.

    app.config:

    javaScriptVersion = 1.8
    

    Hinweis: Dabei ändert sich das Verhalten weiterer Funktionen. Benutze Google wenn du mehr wissen willst.

  4. Log in to comment