Javascript parseInt 버그 "08", "09"
프로젝트하면서 야구 시간표 때문에 달력을 만든 적이 있습니다.
유독 8일과 9일에서만 에러가 나더군요. 다른데는 다 괜찮은데
일부 스마트폰에서 그런 에러가 발생하는겁니다.
문자열 "07"까지는 7로 잘 변환이 되지만
문자열 "08","09"만 0으로 변환이 되는
이상한 버그가 있습니다.
이게 대다수에서는 8, 9로 잘 변환이 되지만
일 부 기기에서만 0으로 변환이 됩니다.
해결방법은 앞에 "0" 제거하고 변환하시면됩니다.
끗
[협찬] http://phpjs.org/
function intval(mixed_var, base){
var type = typeof(mixed_var);
if(type==='boolean'){
return (mixed_var)? 1: 0;
} else if(type==='string'){
tmp = parseInt(mixed_var, base || 10);
return (isNaN(tmp) || !isFinite(tmp))? 0: tmp;
} else if(type==='number' && isFinite(mixed_var)){
return Math.floor(mixed_var);
} else{
return 0;
}
}