你如何得到一个字段的整数值?

时间:2013-03-21 00:39:30

标签: javascript

我必须使用它来获取字段的整数值:

var local = {};
local.result = $('#myID').val();
local.result = parseInt(0 + local.result);
return local.result;

问:是否有最好的做法,比如某种返回值的jQuery方法或者如果它不是值,则为数字0?

我需要更多jQuery!

3 个答案:

答案 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是一个有效的正整数。