JavaScript中的十进制验证

JavaScript中的十进制验证,javascript,validation,decimal,dom-events,Javascript,Validation,Decimal,Dom Events,我使用以下脚本进行十进制验证。我只需要输入数字和点符号,如123.00而已。下面的函数不支持这样精细的字母,但它不允许也输入点(.)符号?如何使用此功能输入点符号 function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode

我使用以下脚本进行十进制验证。我只需要输入数字和点符号,如123.00而已。下面的函数不支持这样精细的字母,但它不允许也输入点(.)符号?如何使用此功能输入点符号

function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;
         else
         return true;
      }
函数isNumberKey(evt)
{
var charCode=(evt.which)?evt.which:event.keyCode
如果(字符码>31&(字符码<48 | |字符码>57))
返回false;
其他的
返回true;
}
功能是数字键(evt)
{
var charCode=(evt.which)?evt.which:event.keyCode
如果(charCode!=46&&charCode>31
&&(字符编码<48 | |字符编码>57))
返回false;
返回true;
}

使用正则表达式,这是一种更优雅的方法

function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode.match('/^[-+]?([0-9]*\.[0-9]+|[0-9]+)$/'))
            return false;
         else
         return true;
      }
函数validateFloatKeyPress2(valor、Presision、event){
var keyCode=(document.all)?event.keyCode:event.which;
如果(键代码==8){
返回true;
}            
如果(keyCode==46&&valor.value.indexOf(“.”>=0){
返回false;
}
//仅启用浮点值
如果((键码>=48&&keyCode(presicion-1)){
返回false;
}
返回true;
}
否则{
返回false;
}
}
功能反转(s){
var o=“”;
对于(var i=s.length-1;i>=0;i--)
o+=s[i];
返回o;
}
试试这个:

//验证数字字段

function validate(x) {
    var decimal = /^[1-9][\.\d]*(,\d+)?$/;
    if (x.match(decimal)) {
        return true;
    } else {
        return false;
    }
}
您还可以检查parseFloat方法,它返回NaN。

检查thorugh isNaN()方法

var a=3.00003

isNaN(a)将返回false

var b='3.0.0' isNaN(b)将返回true

我想这个方法会解决你的问题

function checkDecimal(num){ var chkDecimal= /^\d+\.\d{0,2}$/; return chkDecimal.test(num); } alert(checkDecimal(0.2)) alert(checkDecimal(1)) 函数checkDecimal(num){ var chkDecimal=/^\d+\.\d{0,2}$/; 返回chkDecimal.test(num); } 警报(校验十进制(0.2)) 警报(检查十进制(1))
您的问题的完整解决方案是

function isNumberKey(e)
    {
        var code = (code ? code : e.which);           
        if (code != 46 && code > 31 && (code < 48 || code > 57))
            return false;
            //if it is (.)
        else if (code == 46) {
             var Value = this.value;
            //if value already contains (.) character
            if (Value.indexOf('.') != -1) {
                var splt = Value.split('.');
                //if there is already(.) char then return false
                if (splt.length >= 2)
                    return false;
            }
        }
        return true;
    }
函数是numberkey(e)
{
var代码=(代码?代码:e.which);
如果(代码!=46&&code>31&&code<48 | | code>57))
返回false;
//如果是()
否则如果(代码==46){
var值=此值;
//如果值已包含(.)个字符
if(Value.indexOf('.')!=-1){
var splt=Value.split('.');
//如果已经有(.)个字符,则返回false
如果(splt.length>=2)
返回false;
}
}
返回true;
}
函数为数字(e){
var-keyCode=e.which?e.which:e.keyCode;

var ret=((keyCode==46 | | keyCode>=48&&keyCode)它给出以下错误Microsoft JScript运行时错误:对象不支持此属性或方法是否包含jQuery库?match()是一个jQuery方法。它工作正常。但是它的allow 123.23.45…不止一个点。如何限制只允许一个dotGive id到输入框,在验证时,获取文本框的值并用“.”分割,如果数组大于2,则return接受十进制数,对于IE和Firefox来说,这将是有用的签出。。 function checkDecimal(num){ var chkDecimal= /^\d+\.\d{0,2}$/; return chkDecimal.test(num); } alert(checkDecimal(0.2)) alert(checkDecimal(1))
function isNumberKey(e)
    {
        var code = (code ? code : e.which);           
        if (code != 46 && code > 31 && (code < 48 || code > 57))
            return false;
            //if it is (.)
        else if (code == 46) {
             var Value = this.value;
            //if value already contains (.) character
            if (Value.indexOf('.') != -1) {
                var splt = Value.split('.');
                //if there is already(.) char then return false
                if (splt.length >= 2)
                    return false;
            }
        }
        return true;
    }
function IsNumeric(e) {
        var keyCode = e.which ? e.which : e.keyCode;
        var ret = ((keyCode == 46 || keyCode >= 48 && keyCode <= 57) || specialKeys.indexOf(keyCode) != -1);
        return ret;
}