Helferlein: Prüfen ob String.trim Funktion vorhanden ist

problematische Seite

Hallo zusammen,

in der SelfHTML Wiki steht, wenn der Browser noch keine trim() Funktion unterstützt (meist IE < 9), kann man diese mit

String.prototype.trim=function() { return this.replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g,""); };

selbst definieren. Soweit, sogut.

Nur die Abfrage, ob diese Funktion bereits implementiert ist, macht mir noch Probleme :-(

  1. if(!String.trim) ... scheitert derzeit im MS IE. Will damit die Funktion immer neu definieren.

  2. if(!String.prototype.trim) ... Wäre eigentlich die vollständige Abfrage. Gibt es andere Browser, die dies nicht können und daran scheitern?

  3. if(!"A".trim) ... Was spricht gegen diese kurze Lösung?

Danke im voraus für eure Hilfe.

Gruss

  1. problematische Seite

    Hallo

    1. if(!String.trim) ... scheitert derzeit im MS IE. Will damit die Funktion immer neu definieren.

    String.trim hat mit String.prototype.trim nichts zu tun. Wenn du es setzt und der Browser es zulässt, gibt es kein "".trim(), sondern bloß String.trim(). Du suchst schon den Prototypen:

    1. if(!String.prototype.trim) ... Wäre eigentlich die vollständige Abfrage. Gibt es andere Browser, die dies nicht können und daran scheitern?

    Nein, das sollte in allen relevanten Browsern gehen.

    1. if(!"A".trim) ... Was spricht gegen diese kurze Lösung?

    Erst mal nichts, das geht auch.

    Ist meiner Meinung nach aber ein "Umweg". Muss man als Leser des Codes erst mal verstehen. String.prototype.trim ist da ausdrücklicher. Dann ist klar, was du vorhast.

    Nico