ブログ

リステップからのお知らせや、ホームページを活用するためのお役立ち情報などをご案内。

JavaScriptのsubstrでマイナス指定で後ろから切り出すと不具合が…

久々にJavaScriptでハマってしまいました・・・。

 

文字列の後ろから文字列を取り出そうと思い、substrを使用して

var str = "abcde";
var tmp = str.substr(-2, 2);

こんな感じで第一引数(開始位置)にマイナス指定を使用していました。

 

しかし、どうやらこのマイナス指定はブラウザにより解釈が異なり、開始位置に負の値が指定された場合は「0」(つまり文字列の先頭)と解釈するものもあるようです。

JavaScript の substr には気をつけた方が良い
もやし日記

 

ブラウザに依存せずsubstrで後ろから切り出す方法

「マイナス指定が使えないとのことなので、正の値を使えばいい。」

ということで、こんな感じで取り出せば問題ありませんでした。

var str = "abcde";
var tmp = str.substr(str.length-2, 2);

コメント

  1. yamada より:

    substringはマイナス値が0扱いになります。
    sliceはマイナスが使えます。

    • 吉川 より:

      コメントありがとうございます^^

      slice、知りませんでした(汗)
      貴重な情報ありがとうございました!