使用javascript进行十进制验证

时间:2014-07-29 03:25:07

标签: 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})?$/)) {
                         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;
                        }

            }

感谢

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

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);​

JS FIDDLE DEMO

答案 1 :(得分:1)

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

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

检查here了解更多方法..