203

文字列から先頭と末尾のスペースを取り除くためのクリーンで効率的なJavaScript実装とは何ですか?

例えば:

" dog"

"dog "

" dog "

" dog "

すべてが

"dog"

4

8 に答える 8

229

これを使って:

if(typeof(String.prototype.trim) === "undefined")
{
    String.prototype.trim = function() 
    {
        return String(this).replace(/^\s+|\s+$/g, '');
    };
}

これで、trim関数が文字列のファーストクラス関数として使用できるようになります。例えば:

" dog".trim() === "dog" //true

編集:正規表現パターンを1つに結合するというJPの提案を採用しました。また、クリストフの提案に従ってグローバル修飾子を追加しました。

トリム関数を再作成する前に、トリム関数をスニッフィングするというMatthewCrumleyのアイデアを取り入れました。これは、クライアントで使用されているJavaScriptのバージョンが新しいため、独自のネイティブトリム機能がある場合に実行されます。

于 2009-09-13T15:57:34.627 に答える
150

jqueryユーザーの方はいかがですか?$.trim(s)

于 2011-02-28T21:05:20.693 に答える
114

Gumbo はすでにコメントでこれを指摘していますが、これは答えとして繰り返します: このtrim()メソッドは JavaScript 1.8.1 で追加され、最新のすべてのブラウザー (Firefox 3.5+、IE 9、Chrome 10、Safari 5.x) でサポートされていますが、 IE 8 以前ではサポートされていません。使い方は簡単です:

 "  foo\n\t  ".trim() => "foo"

以下も参照してください。

于 2012-01-17T01:41:51.100 に答える
13

これが私が使用する機能です。

function trim(s){ 
  return ( s || '' ).replace( /^\s+|\s+$/g, '' ); 
}
于 2009-09-13T16:08:14.977 に答える
9

Steven Levithanは以前、 Faster JavaScript Trimの実装方法について書いていました。それは間違いなく一見の価値があります。

于 2009-09-13T17:14:19.683 に答える
7

すでに jQuery を使用している場合は、jQuery.trim()jQuery で既に提供されているものを確認することをお勧めします。

于 2012-01-23T12:04:53.320 に答える
6

文字列をトリムする新しいコードを書くのではなく、「strip()」を呼び出す既存のコードを見て、なぜそれが機能しないのか疑問に思っている場合は、prototypejs フレームワークのようなものを含めようとしているかどうかを確認することをお勧めします。 、実際にロードされていることを確認してください。
そのフレームワークは、すべての String オブジェクトにストリップ関数を追加しますが、たとえば、それをアップグレードして、Web ページがまだ古い .js ファイルを参照している場合、もちろん機能しません。

于 2010-08-16T16:34:38.823 に答える