风&影

博客园 首页 联系 订阅 管理

      最开发一年以来,经常碰到会碰到一些相似的处理,因而想对一些通用的方法进行封装,以便于平时开发用。但是因为经验有限,不知道这样封装后对系统整体的性能是否有影响,所以整理后并写在园区,忘各位大侠指正。以下是本人对js的string的类经常使用的一些方法扩充。

1、经常在对某些字符进行匹配或者保存的时候,希望去除空格整理以下三个方法:

//去除所有的空格
String.prototype.trim = function() {
    return this.replace(/(^\s+)|\s+$/g, "");
};
//去除做空格
String.prototype.trimLeft = function() {
    return this.replace(/^\s*/g, '');
};
//去除右空格
String.prototype.trimRight = function() {
    return this.replace(/\s*$/g, '');
}

例如:" 含 有 ".trim()   结果为:"含有";

"  含 有 ".trimLeft()   结果为:"含 有 ";

"  含 有  ".trimRight()  结果为:"  含 有"

2、用于判断是否包含某个字符
String.prototype.contain = function(value) {
    return this.indexOf(value) !== -1;
};

例如:"包含123".contain("123")  结果为"true"

        "包含123".contain("1234") 结果为"false"
3、把某个字符插入到该字符的某个位置
String.prototype.insert = function(startIndex, value) {
    if (this.length < startIndex) {
        return this + value;
    } else {
        return this.substring(0, startIndex) + value + this.substring(startIndex);
    }
};

例如:"我中国人".insert(1,"是")  结果:"我是中国人"


4、去除一段字符串中所有的html标签
String.prototype.unHtml = function() {
    return this.replace(/<[^>].*?>/g, "");
}

例如:"<span>你好</span>".unHtml()  结果:"你好"
5、首字母大写
String.prototype.toPascal = function() {
    if (this.length === 0) {
        return this;
    } else {
        return this.charAt(0).toUpperCase() + this.substring(1);
    }
}
6、首字母小写
String.prototype.toCamel = function() {
    if (this.length == 0) {
        return this;
    }
    return this.charAt(0).toLowerCase() + this.substring(1);
}
7、替换字符串数据,如下方式调用

String.prototype.format = function(args) {
    var result = this;
    if (typeof (args) === "object" && arguments.length === 1) {
        for (var key in args) {
            if (args[key] != undefined) {
                var reg = new RegExp("({" + key + "})", "g");
                result = result.replace(reg, args[key]);
            }
        }
    } else {
        for (var i = 0, imax = arguments.length; i < imax; i++) {
            if (arguments[i] != undefined) {
                var reg = new RegExp("({[" + i + "]})", "g");
                result = result.replace(reg, arguments[i]);
            }
        }
    }
    return result;
}

例子:var str1 = "我是{0},今年{1}了";

var result1 = str1.format("李雷", 22);

结果是:"我是李雷,今年22了"

var result1 =str1.format({ name: "李磊", age: 22 });

结果是:"我是李磊,今年22了"

以上我本来整理,如果有不合理的地方望大家指正,若还有什么比较通用的方法也希望大家能共享下,呵呵。

posted on 2012-12-04 19:53  风&影  阅读(269)  评论(0)    收藏  举报