如何解析前导0的字符串

发布于 2024-08-07 11:35:07 字数 25 浏览 11 评论 0原文

如何将Int "09" 解析为9 ?

How to parseInt "09" into 9 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

西瓜 2024-08-14 11:35:07

包括基数:

parseInt("09", 10);

include the radix:

parseInt("09", 10);
丶视觉 2024-08-14 11:35:07

这让我抓狂 - parseInt("02") 可以工作,但 parseInt("09") 不行。

正如其他人所说,解决方案是指定基数 10:

parseInt("09", 10);

这种行为有一个很好的解释 这里

... 在 Javascript 中数字开头
带零的被认为是八进制并且
八进制中没有 08 或 09,因此
问题所在。

This has been driving me nuts -parseInt("02") works but not parseInt("09").

As others have said, the solution is to specify base 10:

parseInt("09", 10);

There's a good explanation for this behaviour here

... In Javascript numbers starting
with zero are considered octal and
there's no 08 or 09 in octal, hence
the problem.

迷离° 2024-08-14 11:35:07

您还可以执行以下操作:

Number('09') => 9

这在 IE7、IE8、FF3、FF4 和 Chrome 10 上返回整数 9。

You can also do:

Number('09') => 9

This returns the integer 9 on IE7, IE8, FF3, FF4, and Chrome 10.

表情可笑 2024-08-14 11:35:07

重新实现现有的 parseInt,以便如果使用一个参数调用它,则“10”将自动包含为第二个参数。

(function(){
  var oldParseInt = parseInt;
  parseInt = function(){
    if(arguments.length == 1)
    {
      return oldParseInt(arguments[0], 10);    
    }
    else
    {
      return oldParseInt.apply(this, arguments);
    }
  }
})();

Re-implement the existing parseInt so that if it is called with one argument then "10" is automatically included as the second argument.

(function(){
  var oldParseInt = parseInt;
  parseInt = function(){
    if(arguments.length == 1)
    {
      return oldParseInt(arguments[0], 10);    
    }
    else
    {
      return oldParseInt.apply(this, arguments);
    }
  }
})();
夜空下最亮的亮点 2024-08-14 11:35:07
parseInt("09",10);

此处返回 9。

这很奇怪。

alert(parseInt("09")); // shows 9. (tested with Opera 10)
parseInt("09",10);

returns 9 here.

It is odd.

alert(parseInt("09")); // shows 9. (tested with Opera 10)
旧梦荧光笔 2024-08-14 11:35:07
parseInt("09", 10);

或者

parseInt(parseFloat("09"));
parseInt("09", 10);

or

parseInt(parseFloat("09"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文