用于检查数字是否不超过6位数和2位小数的vanilla JavaScript解决方案

时间:2015-07-08 19:56:29

标签: javascript

如果数字的位数不超过6位且小数位数不超过2位,我需要返回验证检查(布尔值)。

例如:

1 = valid
10 = valid
111111 = valid
111111.11 = valid
1111111.11 = INVALID
1.111 = INVALID

查看堆栈溢出我只能找到输入自动舍入的答案(不是我想要的)或小数位必须等于2个小数位(最多2个)。

3 个答案:

答案 0 :(得分:6)

显然,你需要

function valid(n) { 
  return no_more_than_six_digits(n) && no_more_than_two_decimal_places(n);
}

那么我们如何定义这些功能呢?

function no_more_than_six_digits        (n) { return n < 1e7; }
function no_more_than_two_decimal_places(n) { return Math.floor(n * 100) === n * 100; }

答案 1 :(得分:2)

此功能应该有效

function t(x) {
    return x < 1000000 && Math.floor(x*100)/100 == x;
}

实施例 http://jsfiddle.net/q6511o17/1/

但是检查torazaburos的答案是一个更完整的解决方案和解释。

答案 2 :(得分:0)

丑陋,但有效。

function validate(x) {
    return Math.floor(x) < 1000000 && 
    (x.toString().indexOf('.') == -1 ? 
    true : x.toString().split('.')[1].length < 3)
}