Javascript parseInt 버그 "08", "09"

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; 

}