2010-04-18 1 views
7

Ich finde, dass viele High-Level-Funktionen in den meisten bekannten Javascript-Bibliotheken wie Jquery, YUI ... usw. fehlen. Nehmen wir die String-Manipulation als Beispiel, startsWith, endsWith, contains, lTrim, rTrim, trim, isNullOrEmpty ... usw. Diese Funktion ist eigentlich sehr häufig.Gibt es eine Javascript-Bibliothek, die einen umfangreichen Satz sehr häufig verwendeter Funktionen enthält?

Ich würde gerne wissen, ob es eine Javascript-Bibliothek/Plugin einer Javascript-Bibliothek gibt, die diese Lücken füllt (einschließlich, aber nicht beschränkt auf String-Manipulation)?

Es wäre großartig, wenn die Bibliothek den Prototyp nicht überschreibt.

+0

Warum nicht zum String-Prototyp hinzufügen? – cletus

+2

@cletus Weil es möglicherweise Konflikte mit von anderen Personen geschriebenen Bibliotheken/Codes gibt. – bobo

Antwort

9

Werfen Sie einen Blick auf underscore.js (leider keine String-Manipulation, aber viele andere gute Sachen).

3

Die meisten dieser String-Funktionen sind verfügbar andere Methoden mit dem String-Objekt zB

var myString = 'hello world'; 

myString.indexOf('hello') == 0; //same as startsWith('hello'); 

Sie könnten diese Funktionen einpacken in andere Funktionen, wenn Sie möchten, zugeordnet werden. Ich denke, das Hinzufügen von Prototypen zum String-Objekt wäre der Weg dorthin, und alle Bibliotheken, die Sie finden, werden diese Route wahrscheinlich trotzdem durchlaufen.

+0

Ja, sie sind verfügbar, indem andere Methoden verwendet werden, die dem Zeichenfolgenobjekt zugeordnet sind, aber dies wäre nicht hoch genug. – bobo

2

Die ms ajax core-Bibliothek enthält alle diese String-Methoden sowie Datumsmethoden usw. im Grunde ein tapferer Versuch, .net zu js zu bringen.

Sie müssen nicht den gesamten MS Ajax js-Stapel laden, nur die Kerndatei.

1

All dies ist leicht mit Wrapper implementiert, wenn Sie den Prototyp

var StringWrapper = (function(){ 
    var wrapper = { 
     string: null, 
     trim: function(){ 
      return this.string.replace(/^\s+|\s+$/g, ""); 
     }, 
     lTrim: function(){ 

     } 
    }; 

    return function(string){ 
     wrapper.string = string; 
     return wrapper; 
    }; 
})(); 

StringWrapper(" aaaa bbbb ").trim(); /// "aaaa bbbb" 

Die Funktionen nur einmal erstellt werden, werden zu verlängern nicht wollen, so ist es sehr effizient. Die Verwendung eines Wrappers über ein Hilfsobjekt führt jedoch zu einem zusätzlichen Funktionsaufruf.

+1

Können Sie erklären, wofür diese Zeile steht: 'lTrim: function() {...'? – FellyTone84

1

underscore.string sieht aus wie es Ihren Bedürfnissen entsprechen könnte. Hier ist, wie sie es beschreiben:

Underscore.string ist JavaScript-Bibliothek für eine komfortable Handhabung mit Streichern, Erweiterung für Underscore.js von Prototype.js inspiriert, Right.js, Unterstrichen und schöne Sprache Ruby.

Underscore.string bietet Ihnen mehrere nützliche Funktionen: Großbuchstaben, sauber, enthält, zählen, escapeHTML, unescapeHTML, einfügen, spleißen, startsWith, endsWith, titleize, trimmen, truncate und so weiter.