JavaScript trim()

admin發表於2018-08-31

trim方法可以清除字串兩端的一個或者多個空格。

ES5之前,JavaScript沒有內建此方法,算是一個功能欠缺。

好在ES5新增此功能,彌補了此缺陷。

更多內容可以參閱JavaScript String 字串一章節。

語法結構:

[JavaScript] 純文字檢視 複製程式碼
str.trim()

此方法能夠清除字串兩端的空格。

瀏覽器相容:

(1).IE9+瀏覽器支援此方法。

(2).edge瀏覽器支援此方法。

(3).谷歌瀏覽器支援此方法。

(4).火狐瀏覽器支援此方法。

(5).opera瀏覽器支援此方法。

(6).safria瀏覽器支援此方法。

程式碼例項:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var str = " antzone ";
console.log(str.length);
console.log(str.trim().length);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/31/013640mqhmvbm2uoc1qmr7.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

在應用trim方法之前,字串的長度是9,在應用之後,字串的長度是7。

從一個側面證明字串兩端的空格已經被刪除。

考慮到當前低版本IE瀏覽器還有一定的市場,所以需要進行一下相容。

下面就是一段能夠相容所有主流瀏覽器的程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}
var str = " antzone ";
console.log(str.length);
console.log(str.trim().length);

上面能夠相容低版本IE瀏覽器,本站已經測試過了,下面對程式碼進行一下分析。

(1).第一行程式碼用來判斷當前瀏覽器是否支援trm方法,雖然trim方法是內建的,但是也是從原型鏈繼承的。

(2).如果瀏覽器不支援,那麼就在原型鏈上新增一個自定trm方法。

(3).核心是裡面的正規表示式,它能夠將字串兩端的空格替換為空。

前面介紹的是刪除字串兩端的空格,實際應用中,也許需要刪除字串中所有的空格。

下面通過程式碼例項補充一下此功能,需要的朋友可以借鑑一下。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let str=" 螞蟻部落 antzone ";
String.prototype.trim = function () {
  let reg=/\s/g;
  return this.replace(reg,"");
};
console.log(str.length);
console.log(str.trim().length);

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/28/152231uafx3iy3sloffdyh.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上面程式碼可以刪除字串中的所有空格。

實現原理非常簡單,\s匹配字串中所有的空格,然後通過replace方法將空格都替換為""。

最終達到了刪除所有空格的功能,更多內容參閱如下兩篇文章:

(1).\s參閱正規表示式 \s 元字元一章節。

(2).replace參閱正規表示式replace()一章節。

相關文章