如何验证十进制数

时间:2015-01-22 06:54:33

标签: javascript jquery

我有一个文本框应该接受十进制,如12345.678那个文本框应该接受。在5位小数之前和3位小数之后如何验证此类型

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式匹配textarea中的值。必需的正则表达式是:

/^\d{5}\.{1}\d{3}$/

http://www.regexr.com/3a8rn

答案 1 :(得分:0)

这是你在找什么?

小提琴: Demo

<强> HTML

<input type="text" onkeypress = "return onlyDecimal(event,this)" onblur="validateValue(this)"/>

<强> JS

function onlyDecimal(event, elem) {
    var charCode = (event.which) ? event.which : event.keyCode;
    console.log(elem.value.indexOf("."));
    if(elem.value.length>=9)
    {
        validateValue(elem);
        return false;

    }
    if (elem.value.indexOf(".") >= 0 && elem.value.split(".").length - 1 >= 0 && charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    if ((charCode == 190 || charCode == 110 || charCode == 46) && elem.value.length>=5) //for '.'
        return true;
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

}

function validateValue(elem){
    if(elem.value.length<=9 && elem.value.indexOf(".") < 0)
    {
        alert("invalid value");
    }   
    else if(elem.value.length<=9 && elem.value.indexOf(".") !=5)
    {
        alert("invalid value");
    }   
    else if(elem.value.length>0 && elem.value.indexOf(".") >0)
    {
        var temp=elem.value.split(".");

        if(temp[0].length<5 ||temp[1].length<3)
            alert("invalid value");
    }   
}