我必须使用它来获取字段的整数值:
var local = {};
local.result = $('#myID').val();
local.result = parseInt(0 + local.result);
return local.result;
问:是否有最好的做法,比如某种返回值的jQuery方法或者如果它不是值,则为数字0?
我需要更多jQuery!
答案 0 :(得分:2)
您的代码在某些浏览器中会失败,因为他们会看到以0
开头的数字为base-8。试试这个:
return parseInt(document.getElementById('myID').value,10) || 0;
答案 1 :(得分:0)
您可以使用+val
尝试将任何字符串str
强制转换为数字。
如果您有可能的非数字值,并希望默认为0,就像在原始帖子中一样:
var num = +str || 0;
JSFiddle:http://jsfiddle.net/F8wWN/2/
相关JS忍者技巧:What does = +_ mean in JavaScript
我不确定你是否暗示任何浮动转换。它似乎已经是一个整数,因为否则你就无法parseInt
,对吧?
答案 2 :(得分:0)
“最佳实践”是相对的:对其他人最好的可能不是最好的。
如果要检查该值是否为正整数,则正则表达式可能适合该帐单:
var intRe = /^\d+$/;
var el = document.getElementById('id');
el.value = intRe.test(el.value)? el.value || 0;
如果要测试负整数,请修改正则表达式以允许可选的前导减号( - ):
var intRe = /^\-?d+$/;
为方便起见,您可能需要修剪前导和尾随空格。请注意,2.343e3是一个有效的正整数。