[Javascript] Bizarre IE behaviour.
Hakan Magnusson (Backbase)
hakan at backbase.com
Thu Aug 12 12:30:31 CDT 2004
You're not going mad, but unless you specify the radix argument parseInt
tries to determine what kind of base you provide it with, and for
strings that start with '0' it assumes an octal value. The solution is
to specify the radix that parseInt should use (10 in your case, 16 for
hexadecimal etc). Here's the code:
<html>
<body>
<script>
var strDay = '09';
var strMonth = '06';
var strYear = '2004';
alert (strDay);
alert (strMonth);
alert (strYear);
var intDay = parseInt (strDay, 10);
var intMonth = parseInt (strMonth, 10);
var intYear = parseInt (strYear, 10);
alert (intDay);
alert (intMonth);
alert (intYear);
</script>
</body>
</html>
The behaviour is the same for Mozilla, so I think it's safe to assume
that this is how the function is supposed to work according to
ECMAScript standards.
Regards,
H
Matt Barton wrote:
> This is probably me being fantastically short sighted, but I've noticed
> behaviour in IE this afternoon which was wholey unexpected, and also plain
> wrong ("so tell us something new", say the open source fraternity).
>
> This is the situation. I have a very simple page:
>
> ----------------------------
> <html>
> <body>
> <script>
> var strDay = '09';
> var strMonth = '06';
> var strYear = '2004';
> alert (strDay);
> alert (strMonth);
> alert (strYear);
>
> var intDay = parseInt (strDay);
> var intMonth = parseInt (strMonth);
> var intYear = parseInt (strYear);
> alert (intDay);
> alert (intMonth);
> alert (intYear);
>
> </script>
> </body>
> </html>
> --------------------
>
> When it loads I would expect to see six consecutive alert boxes containing,
> in order, the following strings: "09", "06", "2004", "9", "6", "2004".
>
> However, in IE6/Win (on two separate machines in my office) the fourth alert
> box contains "0".
>
> Does anyone else see this behaviour? Tell me I'm not going mad ...
>
> Oh - I've tested it on Opera (the only other browser I have immediate access
> to without installing another) and it works exactly as I would expect it to.
>
> Matt
>
> _______________________________________________
> Javascript mailing list
> Javascript at LaTech.edu
> https://lists.LaTech.edu/mailman/listinfo/javascript
>
>
More information about the Javascript
mailing list