Javascript 如何限制用户只允许数字和两个十进制数字

Javascript 如何限制用户只允许数字和两个十进制数字,javascript,jquery,validation,Javascript,Jquery,Validation,我需要将用户输入限制为只允许一个整数或两个十进制数,限制范围为0到99999 尝试使用脚本,但并非在所有情况下都成功。 此外,这一要求也适用于移动操作系统 $('#txtamount').keydown(function (event) { if (event.which == 8 || event.which == 9 || event.which == 37 || event.which == 38 || event.which == 46) {

我需要将用户输入限制为只允许一个整数或两个十进制数,限制范围为
0
99999

尝试使用脚本,但并非在所有情况下都成功。 此外,这一要求也适用于移动操作系统

     $('#txtamount').keydown(function (event) {

                if (event.which == 8 || event.which == 9 || event.which == 37 || event.which == 38 || event.which == 46) {
                    //event.preventDefault();
                    return true;
                }

                alert('final' + event.which);
                if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
                    return false;
                    event.preventDefault();
                }

                var text = $(this).val();

                if ((text.indexOf('.') != -1) && (text.substring(text.indexOf('.')).length > 2)) {
                    return false;
                    event.preventDefault();
                }
            });
$('#txtmount').keydown(函数(事件){
如果(event.which==8 | | event.which==9 | | event.which==37 | | event.which==38 | | event.which==46){
//event.preventDefault();
返回true;
}
警报(“最终”事件+事件,其中);
if((event.which!=46 | | |$(this.val().indexOf('.')!=1)和&(event.which<48 | | event.which>57)){
返回false;
event.preventDefault();
}
var text=$(this.val();
if((text.indexOf('.')!=-1)和&(text.substring(text.indexOf('.')).length>2)){
返回false;
event.preventDefault();
}
});
尝试了以下内容,但无法限制特殊字符


与其使用keycode检测,不如使用regex和onchange,而不是keydown

$(document).ready(function () {
    $('input[name="number"]').change(function (e) {
        var valueEntered = $(this).val()
        var regex = /^[0-9]{1,5}(\.[0-9]{2})?$/
        if (!regex.test(valueEntered)){
            $(this).val(''); //set value to nil, consider also display message
        }
    });
});
我还将输入类型修改为数字,而不是文本:

<input name="number" type="number" value=" " />

JSFiddle:


注意,这只是开始,您可能需要为您的确切场景更新正则表达式

toFixed(2)是您想要的。可选的是,两位小数。用户可以在其他位置输入数字。我投票结束这个问题,因为这是一个“为我编写代码”的请求。向我们展示您的代码。添加脚本,给我一个部分。如何使它如下-1)只允许数字2)可选允许(小数点后2位),但不是强制性的?请将其设置为此处。编辑以添加字符串的开头/结尾,该字符串应符合您的条件