1
var val_regex = \d{3}+(\.[0-9]{1,2})?$
function validate(form){
    var valOne = form.valone.value;
    var valTwo = form.valtwo.value;
    var valThree = form.valthree.value;


     if (!val_regex.test(valOne)) || (!val_regex.test(valTwo)) ||(!val_regex.test(valThree)){
        $("#val-error").html("Error with inputted value");
        $('#val-error').fadeIn(200).delay(1500).fadeOut(800);
        return false;
     }
     return true;
    }
}

我在这里的正则表达式似乎不起作用。你能看出问题所在吗?

正则表达式 - 我想要的 - 0 到 999(含)之间的任何数字 - 最多允许 2 位小数。我是以错误的方式编写正则表达式还是我的 javascript 错误?

4

2 回答 2

1

您的正则表达式与一位数或两位数不匹配。

试试这个:

var val_regex = /^(([0-9])|([1-9][0-9])|([1-9][0-9][0-9]))(\.[0-9]{1,2})?$/;
于 2012-12-21T14:42:36.487 回答
0
var val_regex = /^\d{1,3}(\.\d{1,2})?$/;

解释:

\d{1,3}

允许 1-3 位数字。

\d{1,3}(\.\d{1,2})?

允许 1-3 位数字,并且可以选择允许一个句点和 1-2 位数字。

^\d{1,3}(\.\d{1,2})?$

以上所有,但在它之前或之后不允许任何其他内容。确保您.trim()的输入消除了之前和之后的任何空格。

This will allow "0" - "999". It will also allow "0.0", "0.00" and "999.99" but not "0." (must have at least digit after the decimal place).

于 2012-12-21T19:44:10.287 回答