Javascript parseInt的行为很奇怪-可能
我有一个简单的小js函数,它是由一个文本框的自定义验证器调用的,基本上用来检查某个时间是否超出了某个特定的范围。。时间的格式为“hh:mm” 范围由从web.config读取的asp.net页面写入js变量 下面是函数中令人不快的部分Javascript parseInt的行为很奇怪-可能,javascript,debugging,visual-studio-2008,parseint,Javascript,Debugging,Visual Studio 2008,Parseint,我有一个简单的小js函数,它是由一个文本框的自定义验证器调用的,基本上用来检查某个时间是否超出了某个特定的范围。。时间的格式为“hh:mm” 范围由从web.config读取的asp.net页面写入js变量 下面是函数中令人不快的部分 function WarnOfOOOFlightTime(source, e){ var val = e.Value.split(':'); var minVal = oooMin.split(':'); var maxVal = oooM
function WarnOfOOOFlightTime(source, e){
var val = e.Value.split(':');
var minVal = oooMin.split(':');
var maxVal = oooMax.split(':');
var valHrs = parseInt(val[0]); //"07" here parses to 7
var valMins = parseInt(val[1]);
var minValHrs = parseInt(minVal[0]); //"08" here parses to 0!
var minValMins = parseInt(minVal[1]);
....
当然这很简单,但我不明白。。
如往常一样,非常感谢您的帮助
谢谢您需要将基数参数添加到
parseInt()
,否则它将尝试将前导零的数字视为八进制
var n = parseInt(str, 10);
+1没有解释所述行为,因为
parseInt('07')
仍应为7的八进制,但我假设问题中缺少描述。@MartinSmith这也是我的假设。fair do的“是”实际上始终是08,失败的07每次都在工作-修正的问题,是一个打字错误