javascript语法分析

javascript语法分析,javascript,int,var,parseint,Javascript,Int,Var,Parseint,可能重复: 如果我在javascript中使用parseInt(“01”),它与parseInt(“1”)不一样吗 start=getStartEugene(“MN01”); start2=getStartEugene(“MN1”); getStartEugene:function(spot)//ex:GT01 GT1 { 变量码=点匹配(/[0-9]+/); var yardCheck=parseInt(码); 如果(码数检查

可能重复:

如果我在javascript中使用parseInt(“01”),它与parseInt(“1”)不一样吗

start=getStartEugene(“MN01”);
start2=getStartEugene(“MN1”);
getStartEugene:function(spot)//ex:GT01 GT1
{
变量码=点匹配(/[0-9]+/);
var yardCheck=parseInt(码);
如果(码数检查<10)
返回“this”+码;
其他的
返回“this0”+码
}
我希望返回的内容是这个+2位数字,比如this25、this55、this01、this02、this09

但我不明白。有人知道为什么吗?

您需要添加基数(第二)参数,以指定您使用的是以10为基数的数字系统

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

这是因为Javascript将以零开头的数字解释为八进制(以8为基数)数字。您可以通过提供计算字符串的基础(正如@jondavidjohn正确指出的那样)来覆盖此默认行为


您甚至不需要在代码中包含
parseInt
。您不理解这个问题。我需要知道它是否是个位数,因为输入可能是MT01或MT1@FelixKlingAh对,我错过了
“MN1”
示例…这不是解决方案。除了解析int以将blah01和blah1分类为same@ealeon:为什么它不是解决方案?它是。。。它将正确解析带前导零的数字字符串。
parseInt("01", 10); // 1
parseInt("10");  // returns 10
parseInt("010"); // returns 8