如何在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);