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