正则表达式的数字介于0.0到0.999之间

时间:2014-10-10 12:19:17

标签: javascript regex pattern-matching keyup

我试图验证0.0到0.999或.0到.999之间的十进制数。

我正在尝试下面的内容,

$('#num').on("keyup", function () {
    var value = $(this).val();
    var regex_cell = /0(\.\[0-9]{3})?/;
    if (!value.match(regex_cell)) {
        this.value = this.value.replace(this.value.slice(-1), "");
    }
});

3 个答案:

答案 0 :(得分:2)

您可以转换为float并验证它,而不是使用正则表达式。

var s = "0.999";
var n = Number.parseFloat(s);

if (n >= 0 && n <= 0.999) // 3 decimal positions only? s.length <= 4
{
    // valid
}

答案 1 :(得分:0)

正则表达式是

var regex_cell = /0(\.[0-9]{1,3})?/

答案 2 :(得分:0)

var regex_cell = /0?(\.[0-9]{1,3})?/

0是可选的。仍然,0会失败。空白会失败。最好的方法是使用浮点数进行评估(使用'Number.parseFloat')。这对正则表达式来说不是一个好工作