【Ext JS】JavaScriptのtrim関数 他
2008.10.29 Author: Jas
JavaScriptには標準でtrim関数が用意されていません。
そのため、下記の様に独自にStrimgクラスを拡張する必要があります。
String.prototype.trim = function() { return this.replace(/^[ \n\r\t]+|[ \n\r\t]+$/g, ''); }
が、Ext JSを使用すると、デフォルトでStringクラス拡張済みのようです。
そのため、文字列の両端のホワイトスペースを取り除きたい場合は、普通の文字列関数と同じ使い方ができます。
var str = ' test '; str = str.trim();
ただ、Ext JSのソースコードを見てみると、正規表現で\sが使用されていたので、全角スペースの取り扱いには注意が必要です。
String.prototype.trim = function(){ var re = /^\s+|\s+$/g; return function(){ return this.replace(re, ""); }; }();
IEでは\sに全角スペースはヒットしませんが、Firefoxでは全角スペースもヒットします。
そのため、文字列の前後に全角スペースがある場合、IEではトリムされませんが、Firefoxだとトリムされてしまいます。
マニュアルを見てみると、Ext JSには他にも文字列関数が用意されているようです。
文字列を書式化できるformat()や文字列の左側を指定した文字で埋めるleftPad()は、使い道が多そうなので覚えておくと便利かもしれません。
// 文字列の書式化 var cls = 'my-class'; var text = 'Some text'; var str = String.format('<div class="{0}">{1}</div>', cls, text);// 5桁になるように左側を0埋めする(str:00123)
var str = String.leftPad('123', 5, '0');
leftPad()があるなら、ついでにrightPad()も用意しておいてほしかったですね。
まぁ、贅沢を言うのはやめておきましょう。