文字列から先頭と末尾のスペースを取り除くためのクリーンで効率的なJavaScript実装とは何ですか?
例えば:
" dog"
"dog "
" dog "
" dog "
すべてが
"dog"
文字列から先頭と末尾のスペースを取り除くためのクリーンで効率的なJavaScript実装とは何ですか?
例えば:
" dog"
"dog "
" dog "
" dog "
すべてが
"dog"
これを使って:
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のバージョンが新しいため、独自のネイティブトリム機能がある場合に実行されます。
jqueryユーザーの方はいかがですか?$.trim(s)
Gumbo はすでにコメントでこれを指摘していますが、これは答えとして繰り返します: このtrim()
メソッドは JavaScript 1.8.1 で追加され、最新のすべてのブラウザー (Firefox 3.5+、IE 9、Chrome 10、Safari 5.x) でサポートされていますが、 IE 8 以前ではサポートされていません。使い方は簡単です:
" foo\n\t ".trim() => "foo"
以下も参照してください。
これが私が使用する機能です。
function trim(s){
return ( s || '' ).replace( /^\s+|\s+$/g, '' );
}
Steven Levithanは以前、 Faster JavaScript Trimの実装方法について書いていました。それは間違いなく一見の価値があります。
すでに jQuery を使用している場合は、jQuery.trim()
jQuery で既に提供されているものを確認することをお勧めします。
文字列をトリムする新しいコードを書くのではなく、「strip()」を呼び出す既存のコードを見て、なぜそれが機能しないのか疑問に思っている場合は、prototypejs フレームワークのようなものを含めようとしているかどうかを確認することをお勧めします。 、実際にロードされていることを確認してください。
そのフレームワークは、すべての String オブジェクトにストリップ関数を追加しますが、たとえば、それをアップグレードして、Web ページがまだ古い .js ファイルを参照している場合、もちろん機能しません。