JavaScriptのsubstrでマイナス指定で後ろから切り出すと不具合が…
Web,JavaScript | 2012年12月12日
久々にJavaScriptでハマってしまいました・・・。
文字列の後ろから文字列を取り出そうと思い、substrを使用して
var str = "abcde"; var tmp = str.substr(-2, 2);
こんな感じで第一引数(開始位置)にマイナス指定を使用していました。
しかし、どうやらこのマイナス指定はブラウザにより解釈が異なり、開始位置に負の値が指定された場合は「0」(つまり文字列の先頭)と解釈するものもあるようです。
ブラウザに依存せずsubstrで後ろから切り出す方法
「マイナス指定が使えないとのことなので、正の値を使えばいい。」
ということで、こんな感じで取り出せば問題ありませんでした。
var str = "abcde"; var tmp = str.substr(str.length-2, 2);
substringはマイナス値が0扱いになります。
sliceはマイナスが使えます。