在解析Int时,似乎应该忽略前导零.这背后的理由是什么?
我认为它与八进制解析有关,因为它只发生在8或9上.还有人认为这是一个Chrome错误,但它也在Firefox中复制.
这是故意的行为吗?如果是这样,为什么?
我觉得我正在做一些无聊的事情.任何人都可以帮助我理解为什么以下不起作用
["1.1", "2.2", "3.3"].map(parseInt);
//=> [1, NaN, NaN]
Run Code Online (Sandbox Code Playgroud)
这虽然有效???
["1.1", "2.2", "3.3"].map(function(num) {
return parseInt(num);
});
//=> [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这似乎也有效
["1.1", "2.2", "3.3"].map(Number);
//=> [1.1, 2.2, 3.3]
Run Code Online (Sandbox Code Playgroud) 我正在解析一个字符串以检查它是否是一个日期,我们现在发现我的方法不适用于八月或九月的日期.这就是我所做的(显然,输入并不是真正的硬编码,但为了简洁起见......):
var str = '2010-08-26 14:53';
var data = str.split(' '); // ['2010-08-26', '14:53']
var date = data[0].split('-'); // ['2010', '08', '26]
var time = data[1].split(':'); // ['14', '53']
var yyyy = parseInt(date[0]); // 2010
// THIS IS WHERE STRANGE THINGS HAPPEN:
var MM = parseInt(date[1]); // 0 - not 08 or 8, as expected!
console.log(date[1]); // prints "08" (with quotes)
console.log(date[1].toString()); // prints 08 (no quotes)
console.log(parseInt(date[1].toString())); // prints 0 (!)
Run Code Online (Sandbox Code Playgroud)
这个问题出现了8,9月份和8楼和9月的每-也就是说,在任"08"
或 …
我有以下问题:
function loadContent(id) {
$("#featuredDiv").load("featuredDiv.php?list="+id);
);
}
Run Code Online (Sandbox Code Playgroud)
打开ID为21012011的URL时,一切正常,如:
javascript:loadContent(28012011)
Run Code Online (Sandbox Code Playgroud)
但是当04022011是id(javascript:loadContent(28012011)
)时,它似乎将数字更改为1057801.
我需要传递的数字与从数据库中读取页面完全一样.有谁知道我做错了什么?
提前谢谢了!
想知道是否有人可以解开一些光线,因为我正在把头发拉过这个!
我已经编写了一个简单的函数来验证用户出生日期是好还是好,或者至少直到我意识到它没有按预期工作!
该函数如下所示,有2个参数,dobNum(输入字段的值)和dmy(接收'dd','mm'或'yyyy'的开关变量).该函数使用输入字段的值调用如下,因此不应存在任何基于对象的问题:
onblur ="validateDOB(this.value,'mm');
我花了很多年时间试图找到它的底部,并且parseInt()语句似乎存在问题.这适用于几天和几个月,直到你通过08(零,八)或09(零,九).这里parseInt()的结果分别返回0而不是8或9.
但这只是08和09的一个问题,传递数字01到07按预期返回1到7.
类似地,当将单个数字1到9传递给函数时,parseInt()以整数形式返回适当的值.
真的很难理解这一个.相反,完全删除parseInt语句似乎工作但是这将dobNum值保留为字符串,我觉得这不是特别好的做法.
有人可以对此有所了解吗?(这个问题同时出现在firefox和IE中)非常感谢,SMc
var DOBddOK = false;
var DOBmmOK = false;
var DOByyyyOK = false;
function validateDOB (dobNum, dmy) {
// Set Regexp based on dmy var.
if (dmy.length == 2) var reg = /^([0-9]{1,2})$/;
else var reg = /^([0-9]{4})$/;
var numOK = reg.test(dobNum);
alert("NumOK: "+numOK); //test
// If dobNum value passes regExp test then convert it to an integer
if (numOK) {
var numVar = parseInt(dobNum);
//var numVar = dobNum;
alert("NumVar: "+numVar); …
Run Code Online (Sandbox Code Playgroud) 我有一个我正在玩的结账,每个项目的数量输入旁边都有一些向上和向下箭头.
我有一些重复的代码,它似乎没有效率.希望你能提供帮助.
每个项目看起来像这样(请原谅我现在的非标准符合item_id属性)
<div class="qty_ctrl_wrap">
<input class="bag_qty" type="text" value="4" item_id="532" name="product_quantity">
<div class="arrows">
<div class="more"></div>
<div class="less"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是完整的jquery函数:
$('#checkout .arrows div').live('click',function(){
var item_id = $(this).parent().prev('input').attr('item_id');
var current_qty = $(this).parent().prev('input').val();
if($(this).attr('class') == 'more') {
var new_qty = parseInt(current_qty) + 1;
} else {
var new_qty = parseInt(current_qty) - 1;
}
// change the input on screen for visual reasons...
$(this).parent().prev('input').val(new_qty);
// submit the changes
$.ajax({
type: 'POST',
url: '/backend/product_purchase_items.php',
data: 'qty='+new_qty+'&item_id='+item_id,
cache: false,
success: function(data) {
$('#product_purchase_items').html(data);
}
}); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个反向标题应用程序,并让它的减法部分工作,但当我打30例如而不是抽出210度它抽出30180.我的代码在下面,我会喜欢一些关于如何的建议解决这个问题.
if(convertFromValue > 360){
paraGraph.innerHTML = 'Please enter a number between 1 and 360';
}
else
{
if(convertFromValue > 180) {
paraGraph.innerHTML = convertFromValue - 180 ;
}
else
{
paraGraph.innerHTML = convertFromValue + 180 ;
}
}
}
Run Code Online (Sandbox Code Playgroud) 为什么
parseInt("09")
Run Code Online (Sandbox Code Playgroud)
回来0
但是
parseInt("07")
Run Code Online (Sandbox Code Playgroud)
回来7
?