【问题标题】:How to parseInt a string with leading 0如何解析带有前导0的字符串
【发布时间】:2010-12-05 10:25:44
【问题描述】:

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

【问题讨论】:

    标签: javascript string parseint


    【解决方案1】:

    包括基数:

    parseInt("09", 10);
    

    【讨论】:

      【解决方案2】:
      parseInt("09", 10);
      

      parseInt(parseFloat("09"));
      

      【讨论】:

        【解决方案3】:
        parseInt("09",10);
        

        在这里返回 9。

        这很奇怪。

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

        【讨论】:

        • @JonH:对。感谢您的警告。因为他写的是字符串而不是字符串,所以我弄错了。
        • 取决于浏览器和版本 parseInt("09") 可以返回 0。这是一个错误。
        • @JonH: 你能检查一下吗:w3schools.com/jsref/jsref_parseInt.asp document.write(parseInt("010") 这里也显示 10。
        • @JonH:这实际上不是一个错误。 ECMAScript 允许实现将带有前导零的数字视为八进制。有些实现可以,有些不可以。
        • @MatthewCrumley — 一条旧评论,但到底是什么 - ES5 删除了该行为,因此兼容的浏览器应该parseInt('08') 视为 base 10。
        【解决方案4】:

        你也可以这样做:

        Number('09') => 9

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

        【讨论】:

          【解决方案5】:

          这让我发疯了 -parseInt("02") 有效,但 parseInt("09") 无效。

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

          parseInt("09", 10);
          

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

          ... 以 Javascript 数字开头 零被认为是八进制和 八进制中没有 08 或 09,因此 问题。

          【讨论】:

            【解决方案6】:

            重新实现现有的 parseInt,这样如果用一个参数调用它,那么“10”会自动包含在第二个参数中。

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2010-09-13
              • 2015-09-18
              • 2015-01-13
              • 1970-01-01
              • 2020-07-06
              • 2019-06-12
              • 1970-01-01
              相关资源
              最近更新 更多