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错误了?
答案 0 :(得分:1)
您的正则表达式与单个或两位数字不匹配。
试试这个:
var val_regex = /^(([0-9])|([1-9][0-9])|([1-9][0-9][0-9]))(\.[0-9]{1,2})?$/;
答案 1 :(得分: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()
输入以消除前后的任何空格。
这将允许“0” - “999”。它还允许“0.0”,“0.00”和“999.99”但不允许“0”。 (小数点后必须至少有数字)。