2012-10-03 177 views
-3

可能重复:
How to parseInt a string with leading 0的javascript parseInt函数

如果我parseInt函数( “01”)在JavaScript其不一样parseInt函数( “1”)???

start = getStartEugene("MN01"); 
start2 = getStartEugene("MN1"); 

getStartEugene: function(spot) //ex: GT01 GT1 
{ 
    var yard = spot.match(/[0-9]+/); 
    var yardCheck = parseInt(yard); 
    if (yardCheck < 10) 
     return "this"+yard; 
    else 
     return "this0"+yard 
} 

我想要的东西被退回,因为这+ 2位数,如this25,this55,this01,this02,this09

,但我没有得到它。有人知道为什么

+0

在代码中甚至不需要'parseInt'。 –

+0

你不明白这个问题。我需要知道它的单个数字是不是因为输入可能是MT01或MT1 @FelixKling – ealeon

+0

啊对,我错过了“MN1”例子...... –

回答

3

您需要添加的基数(二)参数来指定您使用的是十进制数系统...

parseInt("01", 10); // 1 
+0

这不是解决方案。也许我需要除了解析INT以分类blah01和blah1相同 – ealeon

+0

@ealeon之外的其他方式来实现它:为什么它不是解决方案?它是......它将正确解析带前导零的数字字符串。 –

1

这是因为Java脚本解释从零开始为八进制(基数8)号数。您可以通过提供将在其中评估字符串的基础(如正确指出的@jondavidjohn)来覆盖此默认行为。

parseInt("10"); // returns 10 
parseInt("010"); // returns 8