mazinlabsのブログ

RubyとかCloudとかその辺の記事を書いたり書かなかったり

JavaScript1.8.1以前のためにString.prototype.trimをCoffeeScrpitで対応してみた

rstat.usを会社で弄っていると一部動かない機能があった。
最初バグかと思ったのだがFirebugsを見るとJavaScriptのエラーが出ている。
どうやら会社で使っている推奨ブラウザが古くて、String.prototype.trimが使えないらしい。

trimメソッドは文字列の先頭と末尾の空白文字を削除して返します。このメソッドはECMA-262第5版で規定され、JavaScript 1.8.1で初めて導入されました

http://ja.wikibooks.org/wiki/JavaScript/String/prototype/trim

とりあえず応急処置としてrstat.us内にあったCoffeeScriptの中にtrimが動かないブラウザ用の対応を下記のように書いておいた。

    if ( !String.prototype.trim )
      "RS @" + $(update).data("name") + ": " + 
      $(update).find(".entry-content").text().replace(/^\s+|\s+$/g, '') 
    else
      "RS @" + $(update).data("name") + ": " + 
      $(update).find(".entry-content").text().trim(

CoffeeScriptが初めてだったので応急処置だったけど、書き方を調べると多分次のようにかけると思う。

    if ( !String.prototype.trim )
      class String
        trim: ->
          @replace(/^\s+|\s+$/g, '') 

    "RS @" + $(update).data("name") + ": " + 
    $(update).find(".entry-content").text().trim(

明日試してみようとおもう。

追記:
下の記述では動きませんでしたので上の記述を採用中。
誰かうまい方法知ってれば教えてください。