String.prototype.trim()

trim() メソッドは、文字列の両端の空白を削除します。このコンテクストでの空白には、空白文字(スペースやタブ、ノーブレークスペースなど)とすべての改行文字(LF や CR など)を含みます。

構文

str.trim()

戻り値

呼び出し元の文字列の両端から空白を取り除いた新しい文字列です。

説明

trim() メソッドは両端の空白を取り除いた文字列を返します。trim() はその文字列自身の値には影響を与えません(非破壊メソッド)。

trim() を使う

以下の例は小文字の文字列 'foo' を表示します。

var orig = '   foo  ';
console.log(orig.trim()); // 'foo'

// 片方からだけ空白を取り除く .trim() の例。

var orig = 'foo    ';
console.log(orig.trim()); // 'foo'

Polyfill

ネイティブで使用できない場合、他のコードの前に次のコードを実行することにより String.trim() が使用可能になります。

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}

訳者注: 上記コードの正規表現文字列中にある「\s」は空白文字にマッチするメタ文字です。しかし Internet Explorer のいくつかのバージョンは、EcmaScript で trim の削除対象として定義されている空白文字のひとつである「\u00A0」にマッチしません。また、Google Chrome のいくつかのバージョンは、現在仕様で削除対象とされていない全角空白(\u3000)を削除対象としています。よって上記コードは、すべてのブラウザーでの trim の動作を完全に一致させるものものではありません。

仕様

仕様 状況 コメント
ECMAScript 5.1 (ECMA-262)
String.prototype.trim の定義
標準 初期定義です。JavaScript 1.8.1 で実装されました。
ECMAScript 2015 (6th Edition, ECMA-262)
String.prototype.trim の定義
標準
ECMAScript Latest Draft (ECMA-262)
String.prototype.trim の定義
ドラフト

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
trimChrome 完全対応 4Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 9Opera 完全対応 10.5Safari 完全対応 5WebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 11Safari iOS 完全対応 ありSamsung Internet Android 完全対応 1.0nodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報