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 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 3.5IE 完全対応 9Opera 完全対応 10.5Safari 完全対応 5WebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: segayuu, YuichiNukiyama, teoli, ethertank, Potappo, Yuki Konno
最終更新者: segayuu,