給JS物件新增擴充套件方法
阿新 • • 發佈:2019-02-04
如何在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);