Javascript 如何获取字段的整数值?

Javascript 如何获取字段的整数值?,javascript,Javascript,我必须使用它来获取字段的整数值: var local = {}; local.result = $('#myID').val(); local.result = parseInt(0 + local.result); return local.result; 问:有没有最佳实践,比如某种jQuery方法返回一个值,如果不是值,则返回数字0 我必须有更多的jQuery 您可以使用+val尝试将任何字符串str强制为数字 如果您有可能的非数字值,并希望默认为0,如在原始帖子中所示: var num

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

var local = {};
local.result = $('#myID').val();
local.result = parseInt(0 + local.result);
return local.result;
问:有没有最佳实践,比如某种jQuery方法返回一个值,如果不是值,则返回数字0


我必须有更多的jQuery

您可以使用
+val
尝试将任何字符串
str
强制为数字

如果您有可能的非数字值,并希望默认为0,如在原始帖子中所示:

var num = +str || 0;
JSFiddle:

相关JS忍者技巧:


我不确定你是否暗示任何浮点转换。它似乎已经是一个整数了,因为否则您将无法对其进行
parseInt
,对吗?

您的代码在某些浏览器中会失败,因为他们会看到以
0
开头的数字是基数8。请尝试以下方法:

return parseInt(document.getElementById('myID').value,10) || 0;
“最佳实践”是相对的:对别人最好的可能对你不是最好的

如果要检查该值是否为正整数,则可以使用正则表达式:

var intRe = /^\d+$/;
var el = document.getElementById('id');
el.value = intRe.test(el.value)? el.value || 0;
如果要测试负整数,请修改正则表达式以允许可选的前导减号(-):


为了方便起见,您可能需要修剪前导和尾随空白。请注意,2.343e3是一个有效的正整数。

因此返回+$(“#myID”).val()?当您以这种方式编写它时,它可能将
+
应用于
$
而不是值。好的,我认为@Kolink有一个很好的答案,因为他将jQuery从中去掉了。虽然也许我可以编写一个jQuery插件来返回一个值……但它与jQuery无关。您可以使用它将任何字符串转换为数字。如果我给它的不是数字的东西,您的小提琴会返回NaN。请注意,在中:“函数parseInt的规范不再允许实现将以0字符开头的字符串视为八进制值。”但它们确实如此。
var intRe = /^\-?d+$/;