-1

我不得不使用它来获取字段的整数值:

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

问:是否有最佳实践,例如某种 jQuery 方法,它返回一个值或数字 0(如果它不是一个值)?

我得有更多的jQuery!

4

3 回答 3

2

您的代码在某些浏览器中会失败,因为它们会看到以0base-8 开头的数字。试试这个:

return parseInt(document.getElementById('myID').value,10) || 0;
于 2013-03-21T00:43:08.893 回答
0

您可以+val尝试将任何字符串强制str转换为数字。

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

var num = +str || 0;

JSFiddle:http: //jsfiddle.net/F8wWN/2/

相关的 JS 忍者技巧:在 JavaScript 中 = +_ 是什么意思

我不确定您是否暗示任何浮点转换。看起来它已经是一个整数了,否则你将无法使用parseInt它,对吧?

于 2013-03-21T00:41:46.443 回答
0

“最佳实践”是相对的:对别人最好的不一定对你最好。

如果您想检查该值是否为正整数,那么正则表达式可能适合该法案:

var intRe = /^\d+$/;
var el = document.getElementById('id');
el.value = intRe.test(el.value)? el.value || 0;

如果要测试负整数,请修改正则表达式以允许可选的前导减号 (-):

var intRe = /^\-?d+$/;

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

于 2013-03-21T01:06:28.333 回答