给JS对象添加扩展方法

    如何在JS中像C#语法一样,调用str.Trim()呢?

    在JS中string对象自己也有trim方法,可通过str.trim()实现

    在jQuery中jquery对象也封装了trim方法,可通过$.trim(str)实现

    可是对于TrimStart,TrimEnd的方法,JS的string对象并没有对应方法,jquery也同样没有封装。所以对于使用非常多的方法,我们可以自己封装。这里拿Trim的一组方法为例,如下

1.给jQuery对象添加扩展

jQuery.extend({
    trim: function (text) {//jQuery已自带
        return text.replace(/(^\s*)|(\s*$)/g, "");
    },
    trimLeft: function (text) {
        return text.replace(/(^\s*)/g, '');
    },
    trimRight: function (text) {
        return text.replace(/(\s*$)/g, '');
    }
})

2.给JS的String对象添加扩展

/*
*字符串去除两侧空格或指定字符
*注意:参数str中如果包含正则通配字符,如"."请改参数为"\\."
*/
String.prototype.trimAll = function (str) {//js1.8版本以上自带trim,这里改名强烈建议不重复构写方法
    str = (str ? str : "\\s");
    str = ("(" + str + ")");
    var reg_trim = new RegExp("(^" + str + "*)|(" + str + "*$)", "g");
    return this.replace(reg_trim, "");
};

/*
*字符串去除左侧空格或指定字符
*注意:参数str中如果包含正则通配字符,如"."请改参数为"\\."
*/
String.prototype.trimLeft = function (str) {
    str = (str ? str : "\\s");                            //没有传入参数的,默认去空格
    str = ("(" + str + ")");
    var reg_lTrim = new RegExp("^" + str + "*", "g");     //拼正则
    return this.replace(reg_lTrim, "");
}

/*
*字符串去除右侧空格或指定字符
*注意:参数str中如果包含正则通配字符,如"."请改参数为"\\."
*/
String.prototype.trimRight = function (str) {
    str = (str ? str : "\\s");
    str = ("(" + str + ")");
    var reg_rTrim = new RegExp(str + "*$", "g");
    return this.replace(reg_rTrim, "");
}

如何调用

            var str = '       空格    ';
            var res1 = str.trim();
            var res2 = $.trim(str);
            var res3 = str.trimLeft();
            var res4 = $.trimRight(str);


你可能感兴趣的:(给JS对象添加扩展方法)