使われることの多い文字列処理を共通関数としてまとめました。

文字列トリム(半角)

左トリム、右トリムの後に両トリムを行います。

左トリム(半角)

\sは、半角スペースだけではなく、改行など(\n,\r,\f, \t)も含みます。
半角スペースだけを削除する場合は、"\x20+$"
半角スペースとタブを削除する場合は、"[\x20\t]+$"とします。

function trimLeft(str) { return str.replace(/^\s+/,""); }

右トリム(半角)

function trimRight(str) { return str.replace(/\s+$/,""); }

両トリム(半角)

上記trimLeft、trimRightを利用します。

function trim(str) { return trimRight(trimLeft(str)); }

文字列トリム(全角)

左トリム、右トリムの後に両トリムを行います。

左トリム(全角)

function mbTrimLeft(str) { return str.replace(/^ +/,""); }

右トリム(全角)

function mbTrimRight(str) { return str.replace(/^ +/,""); }

両トリム(全角)

上記mbTrimLeft、mbTrimRightを利用します。

function mbTrim(str) { return mbTrimRight(mbTrimLeft(str)); }

バイト数カウント

escape()でエスケープ文字に変換し、変換後の文字数が4未満の場合は1バイト、4以上の場合は2バイトと計数します。

function byteCount(str){ var count = 0; var i, n; for (i=0; i<str.length; i++){ n = escape(str.charAt(i)); if (n.length < 4) { count++; //1バイト文字 } else{ count+=2; //2バイト文字 } } return count; }