【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()も用意しておいてほしかったですね。
まぁ、贅沢を言うのはやめておきましょう。

名古屋のWebシステム開発・ネットワーク構築会社 コネクティボへ