Javascript 验证输入的数字是否为整数或";“一半”;
我正在从用户处获取输入,它需要是整数或Javascript 验证输入的数字是否为整数或";“一半”;,javascript,jquery,Javascript,Jquery,我正在从用户处获取输入,它需要是整数或0.5的倍数 例如,7、23和5.5均有效,但3.1和2.7无效 换句话说,如果用户键入2.3,则会出现一个警报,告诉他们只能键入2.5 如何执行此验证?因为它们正在输入字符串,而浮点数很难正确输入:-)我建议在转换为浮点之前检查字符串输入本身 如果包含字符,请确保最后两个字符为.5 $('button').on('click', function() { var val = Number($('input[type=text]').val()).toF
0.5
的倍数
例如,7
、23
和5.5
均有效,但3.1
和2.7
无效
换句话说,如果用户键入2.3
,则会出现一个警报,告诉他们只能键入2.5
如何执行此验证?因为它们正在输入字符串,而浮点数很难正确输入:-)我建议在转换为浮点之前检查字符串输入本身 如果包含
字符,请确保最后两个字符为.5
$('button').on('click', function() {
var val = Number($('input[type=text]').val()).toFixed(1);
if(val % 0.5) {
alert('This value should' + (parseInt(val) + 0.5));
}
});
您可能还需要检查其他情况,具体取决于您希望允许的情况。例如,7.0
可能与2.50000000
一样有效
但是,为了简单起见,我只想声明输入必须是一个整数,或者以
.5
结尾,因为它们输入的是字符串,而浮点数是出了名的很难得到正确答案:-)我建议在转换为浮点之前检查字符串输入本身
$('button').on('click', function() {
var val = Number($('input[type=text]').val()).toFixed(1);
if(val % 0.5) {
alert('This value should' + (parseInt(val) + 0.5));
}
});
如果包含
字符,请确保最后两个字符为.5
$('button').on('click', function() {
var val = Number($('input[type=text]').val()).toFixed(1);
if(val % 0.5) {
alert('This value should' + (parseInt(val) + 0.5));
}
});
您可能还需要检查其他情况,具体取决于您希望允许的情况。例如,7.0
可能与2.50000000
一样有效
但是,为了简单起见,我只想声明输入必须是一个整数,或者以
.5
结尾。哦,我不知道。看起来一个浮点数应该有足够的精度来精确到小数点后1位。是的,但是如果用户输入2.499999999999
,你是想抱怨它还是让它安静地修改为2.5
?我认为这对政府工作来说已经足够了。但你是对的;简单地限制最后一个数字为0或5就足够了。谢谢你的主意。哦,我不知道。看起来一个浮点数应该有足够的精度来精确到小数点后1位。是的,但是如果用户输入2.499999999999
,你是想抱怨它还是让它安静地修改为2.5
?我认为这对政府工作来说已经足够了。但你是对的;简单地限制最后一个数字为0或5就足够了。谢谢你的主意。啊,我也不确定我是否会完全平等浮点数并不总是对等号有很好的响应。为什么不:如果(this.value%0.5)/*值不是0.5的倍数*/
您也不需要new
,创建原语比创建对象要好得多,Number(someInput.value)
将更有效。请注意,它可能会返回NaN
,因此您应该处理这个问题。啊,我也不确定是否会使用完全相等的值。:)浮点数并不总是对等号有很好的响应。为什么不:如果(this.value%0.5)/*值不是0.5的倍数*/
您也不需要new
,创建原语比创建对象要好得多,Number(someInput.value)
将更有效。请注意,它可能返回NaN
,因此您应该处理这个问题。
$('button').on('click', function() {
var val = Number($('input[type=text]').val()).toFixed(1);
if(val % 0.5) {
alert('This value should' + (parseInt(val) + 0.5));
}
});