這是lgzx公司的一道面試題,要求為js的String增加一個方法,去除字串兩旁的空白字元(包括空格、製表符、換頁符等)。
複製代碼代碼如下:
String.prototype.trim = function() {
//return this.replace(/[(^/s+)(/s+$)]/g,"");//把字串中的空白符號也去掉
//return this.replace(/^/s+|/s+$/g,""); //
return this.replace(/^/s+/g,"").replace(//s+$/g,"");
}
JQuery1.4.2,Mootools 使用
複製代碼代碼如下:
function trim1(str){
return str.replace(/^(/s|/xA0)+|(/s|/xA0)+$/g, '');
}
jQuery1.4.3,Prototype 使用,該方式去掉g以稍稍提高效能在小規模的處理字串時效能較好
複製代碼代碼如下:
function trim2(str){
return str.replace(/^(/s|/u00A0)+/,'').replace(/(/s|/u00A0)+$/,'');
}
Steven Levithan 在進行效能測試後提出了在JS中執行最快的裁剪字串方式,在處理長字串時效能較好
複製代碼代碼如下:
function trim3(str){
str = str.replace(/^(/s|/u00A0)+/,'');
for(var i=str.length-1; i>=0; i--){
if(//S/.test(str.charAt(i))){
str = str.substring(0, i+1);
break;
}
}
return str;
}
最後要提到的是ECMA-262(V5) 中為String加入了原生的trim方法(15.5.4.20)。此外Molliza Gecko 1.9.1引擎中也為String增加了trimLeft ,trimRight 方法。