7

我发现大多数著名的 javascript 库(如 jquery、YUI...等)中都缺少许多高级函数。以字符串操作为例,startsWith、endsWith、contains、lTrim、rTrim、trim、isNullOrEmpty...等。这些功能实际上是非常常见的。

我想知道是否存在填补这些空白的 javascript 库/插件(包括但不限于字符串操作)?

如果库不覆盖原型,那就太好了。

4

5 回答 5

9

看看underscore.js(遗憾的是,没有字符串操作,但还有很多其他好东西)。

于 2010-04-18T06:21:11.693 回答
3

这些字符串函数中的大多数都可以使用与字符串对象关联的其他方法获得,例如

var myString = 'hello world';

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

如果您愿意,您可以将这些函数包装到其他函数中。我认为将原型添加到字符串对象将是去那里的方式,你找到的任何库都可能会沿着这条路走下去。

于 2010-04-18T06:31:12.700 回答
2

ms ajax 核心库包含所有这些字符串方法以及日期方法等。基本上是将 .net 引入 js 的勇敢尝试。

您不需要加载整个 MS Ajax js 堆栈,只需加载核心文件。

于 2010-04-18T06:53:00.280 回答
1

如果您不想扩展原型,所有这些都可以使用包装器轻松实现

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"

这些函数只创建一次,因此非常有效。但是在辅助对象上使用包装器确实会产生一个额外的函数调用。

于 2010-04-18T13:20:29.120 回答
1

underscore.string看起来可能适合您的需求。他们是这样描述的:

Underscore.string 是 JavaScript 库,用于舒适地操作字符串,是 Underscore.js 的扩展,灵感来自 Prototype.js、Right.js、Underscore 和漂亮的 Ruby 语言。

Underscore.string 为您提供了几个有用的功能:capitalize、clean、includes、count、escapeHTML、unescapeHTML、insert、splice、startsWith、endsWith、titleize、trim、truncate 等等。

于 2013-10-29T20:19:16.453 回答