最好的方法是检查输入值,而不是按下的键。因为在使用字符代码时需要检查制表符、箭头、退格和其他字符。
该代码在用户按下键后检查输入值:
$('#p_first').keyup(function(){
while(! /^(([0-9]+)((\.|,)([0-9]{0,2}))?)?$/.test($('#p_first').val())){
$('#p_first').val($('#p_first').val().slice(0, -1));
}
});
当输入值无效时,使用while循环删除最后一个字符。 正则表达式/^(([0-9]+)((\.|,)([0-9]{0,2}))?)?$/
验证整数和浮点数,例如"12,12","12.1","12."。 重要的是数字"12."(末尾带有小数点)也是有效的!否则用户无法输入任何句点。
然后在提交时,正则表达式检查有效的浮点数([0-9]{1,2})
而不是([0-9]{0,2})
:
$('form').submit(function(e){
if(! /^([0-9]+)((\.|,)([0-9]{1,2}))?$/.test($('#p_first').val())){
$('#p_first').addClass('error');
e.preventDefault();
}
});
注意:最好将$('#p_first')
分配给变量。 var input = $('#p_first');