2009/03/30

[javascript]ltrim

だいぶ前に、trimをかけるというタイトルでltrimをするソースを作ったことがありました。

//LTRIMをかける
function lf_ltrim(aObj){
var ret = aObj;
while(ret.charAt(0) == " " || ret.charAt(0) == " "){
ret = ret.substr(1,ret.length-1);
}
return ret;
}

作ったことを忘れてしまっていたこともそうなのですが、改めてみてみると、ちょっと改良するところがあるのかなーと思い、再度、定義しなおしてみました。

function ltrim(aVal){
var f_ret = aVal;
/* 空文字の場合 */
if(f_ret.length == 0){
return "";
/* 空文字以外の場合 */
}else{
/* 半角スペースだけ場合 */
if(f_ret.match(/[^ ]/) == null){
return "";
/* 半角スペース以外の場合 */
}else{
while(f_ret.substr(0,1) == " "){
f_ret = f_ret.substring(1,f_ret.length);
}
return f_ret;
}
}
}

一番最初に紹介したのとの違いですが、まず、何も文字が入力されていなかった場合、つまいlengthが0だった場合にそのまま空を返すように改良した点と、半角スペースしかない場合も空を返すように処理を追加した点です。

後、全角スペースを削除する必要はないかと思い、削除対象外としました。

改良後のf_ret.substr(0,1)の部分は、f_ret.charAt(0)でもいいかもしれない。

でも、そこはほんの少しの差なのでいいのかなと。

f_ret.charAt(0)を使った場合は、こう!!

function ltrim(aVal){
var f_ret = aVal;
/* 空文字の場合 */
if(f_ret.length == 0){
return "";
/* 空文字以外の場合 */
}else{
/* 半角スペースだけ場合 */
if(f_ret.match(/[^ ]/) == null){
return "";
/* 半角スペース以外の場合 */
}else{
while(f_ret.charAt(0) == " "){
f_ret = f_ret.substring(1,f_ret.length);
}
return f_ret;
}
}
}

0 コメント:

コメントを投稿