JavaScriptのtrimは全角スペースも削除するので代替でreplaceを使用

trimは全角スペースも削除する

Rubyなどの言語だとtrimを使用すると全角スペースは削除しないが、JavaScriptだと全角スペースも削除される。

Rubyを書く人だとJavaScriptも書く人が結構多いので注意が必要だ。

const str = ' foo '
const strTrim = str.trim()

console.log(`「${str}」`)
// => 「 foo 」

console.log(`「${strTrim}」`)
// => 「foo」

全角スペースは削除しないようにする

全角スペースは削除しないようにするにはtrim()の全角スペースを削除しない版のtrimRuby()のようなメソッドを作成すれば良い。

String.prototype.trimRuby = function () {
  return this.replace(/^[ \r\n\t\uFEFF\xA0]+|[ \t\r\n\uFEFF\xA0]+$/g, '');
};
const str = ' foo '
const strTrim = str.trimRuby()

console.log(`「${str}」`)
// => 「 foo 」

console.log(`「${strTrim}」`)
// => 「foo 」