我尝试使用0.5增量来验证javascript字符串。所以对于exmaple ..
var number = 1 //true
var number = 1.2 //false
var number = 1.5 //true
var number = 2.8 //false
var number = 4 //true
var number = 0.5 //true
var number = 10.4 //false
我想知道是否有人可以帮我开始这样的事情。或许可以参与正则表达式吗?
function validateNumber(value){
//Do validation
}
感谢您的阅读。
答案 0 :(得分:10)
您可以使用返回余数的模数运算符%
。
function validateNumber(value){
return value % 0.5 == 0;
}
答案 1 :(得分:2)
由于时间2是最有效的操作之一,这可能比使用%:
更快function validateNumber(value) {
return 2*value==Math.round(2*value)
}
更快的版本,无需调用。
(因此,这是答案的最快解决方案:http://jsperf.com/modulus-vs-times2)
function validateNumber(value) {
return 2*value==2*value>>0
}
答案 2 :(得分:0)
答案 3 :(得分:0)
这太过分了,但可以使用HTML5验证来完成:
var validateNumber = (function() {
var inp = document.createElement('input');
inp.type = 'number';
inp.step = 0.5;
return function validateNumber(value) {
inp.value = value;
return !inp.validity.stepMismatch;
};
})();
当然,在实践中使用@AmitJoki's answer。