使用javascript进行十进制验证

使用javascript进行十进制验证,javascript,decimal,Javascript,Decimal,如何使用javascript进行十进制验证 有一个文本框,只接受24.00或24或任何小于24.00的值 如果输入23.99,文本也必须允许 谁能帮我一下吗 我试过这样做 if (document.forms[0].hours!= undefined) { var val = document.forms[0].hours.value ; if (val .match(/^\d{0,6}(?:\.\d{0,2})?$/)) {

如何使用javascript进行十进制验证

有一个文本框,只接受24.00或24或任何小于24.00的值

如果输入23.99,文本也必须允许

谁能帮我一下吗

我试过这样做

if (document.forms[0].hours!= undefined) {
                 var val = document.forms[0].hours.value ;
                 if (val .match(/^\d{0,6}(?:\.\d{0,2})?$/)) {
                         alert("Invalid" +'${payType5Code}'+"  Hours. The hours entered can not have more than 2 decimal places,and should be in the range of 0 to 24 ");
                         submitted=false;           
                         return false;
                        }

            }
谢谢你可以试试这个:

var foo = document.getElementById('foo');

foo.addEventListener('input', function (prev) {
    return function (evt) {
        if (!/^\d{0,6}(?:\.\d{0,2})?$/.test(this.value)) {
          this.value = prev;
        }
        else {
          prev = this.value;
        }
    };
}(foo.value), false);​

这可以通过简单的正则表达式来完成

val = "2.13"
if (!val.match(/^(\d{0,2})(\.\d{2})$/)) {
alert("sorry this is wrong");
} else {
    alert("yeah this is true");
}

查看更多方法。

谢谢您的回答,我将验证的文本框是动态创建的,这意味着文本可能存在,也可能不存在。因此,在找到文本框后,只需进行验证,并在值不匹配时提醒用户。@Anto:-因此,您必须在该函数上方选中文本框的存在。Rest函数将是相同的,它将工作!:)你在吗?我对上面的代码有问题。@Anto:-有什么问题?如果文本框中输入的文本是2:,我认为正则表达式将不起作用。)