文字列を数値に変換する場合parseIntを使うが、parseInt("010")としたときに8が返ってくる。文字列で"010"は8進数と解釈されるためおこっている様子。(先頭が"0"だと8進数と解釈される)
"001"〜"009"は通常通り1〜9の数値が返るが"010"以降で文字列に"8"を含まない場合同じことがおこる。ex."01234567"
頭の"0"をとってからparseIntしてやることで回避できた。
var n = "010";
if(n.substr(0, 1) == "0") {
n = parseInt(n.substr(1));
}
Author: nito | Saturday, August 15, 2009 | | Permanent Link