おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

JavaScriptでstrip

RubyのStringクラスには、文字列の左右の空白を除去するメソッドstripが存在します。でもJavaScriptにはありません。なのでJavaScriptで同じ機能を実装しようとしたのですが、最初はうまいやり方がわからず、下記のようにreplaceメソッドを二回使っていました。

" ho  ge   ".replace(/^\s*/, "").replace(/\s*$/, ""); //  => "ho  ge"

でもこれはどう考えてもcoolじゃありません。どうやったらきれいにできるのかなーと思いつつ正規表現の本を読んでたら、最小量指定子を使う方法を思いつきました。

" ho  ge   ".replace(/^\s*(.*?)\s*$/, "$1"); //  => "ho  ge"

これでcoolになりました。正規表現ももう少し勉強する必要があるなー

参考

詳説 正規表現 第3版

詳説 正規表現 第3版

追記

JavaScript: The Good Parts読んでたらこんな書き方もあることに気づいた。正規表現奥深い

" ho  ge   ".replace(/^\s*|\s*$/g, ""); //  => "ho  ge"