我發現許多高級函數在大多數着名的JavaScript庫(例如jquery,YUI等)中都缺少。以字符串操作爲例,startsWith,endsWith,contains,lTrim,rTrim,trim,isNullOrEmpty等等。這些功能實際上非常普遍。是否有一個JavaScript庫,其中包含一組豐富的非常高級別的常用功能?
我想知道是否存在一個JavaScript庫/插件的JavaScript庫,填補這些差距(包括但不限於字符串操作)?
如果庫不覆蓋原型,那將會很棒。
我發現許多高級函數在大多數着名的JavaScript庫(例如jquery,YUI等)中都缺少。以字符串操作爲例,startsWith,endsWith,contains,lTrim,rTrim,trim,isNullOrEmpty等等。這些功能實際上非常普遍。是否有一個JavaScript庫,其中包含一組豐富的非常高級別的常用功能?
我想知道是否存在一個JavaScript庫/插件的JavaScript庫,填補這些差距(包括但不限於字符串操作)?
如果庫不覆蓋原型,那將會很棒。
看看underscore.js(可悲的是,沒有字符串操作,但很多其他好東西)。
大多數的這些字符串函數可使用帶有字符串對象如
var myString = 'hello world';
myString.indexOf('hello') == 0; //same as startsWith('hello');
,如果你願意,你可以包裝這些功能成其他功能相關的其他方法。我認爲將原型添加到字符串對象將是去那裏的方式,任何你找到的庫都可能會沿着這條路線走下去。
是的,它們可以使用與字符串對象相關的其他方法,但是這不夠高。 – bobo 2010-04-18 07:09:55
ms ajax core庫包含所有這些字符串方法以及日期方法等基本上是勇敢的嘗試將.net帶入js。
您不需要加載整個MS Ajax js堆棧,只是核心文件。
所有這一切很容易用包裝來實現,如果你不希望延長原型
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"
只被創建一次的功能,所以它非常有效。但是在一個輔助對象上使用一個包裝會產生一個額外的函數調用。
你能解釋一下這行是什麼:'lTrim:function(){...'? – FellyTone84 2013-10-29 20:12:01
underscore.string看起來可能會滿足您的需求。下面是他們如何描述它:
Underscore.string是JavaScript庫,舒適的操控與字符串,擴展Underscore.js在prototype.js中,Right.js,下劃線和美麗的Ruby語言的啓發。 Underscore.string爲您提供了幾個有用的功能:大寫,清理,包含,計數,轉義HTML,unescapeHTML,插入,拼接,startsWith,endsWith,titleize,trim,truncate等等。
爲什麼不把它添加到字符串原型? – cletus 2010-04-18 05:48:14
@cletus因爲它可能與其他人編寫的庫/代碼有衝突。 – bobo 2010-04-18 05:50:17