繁体   English   中英

如何限制两位数的十进制值和如何限制数值中的十进制多个

[英]How to restrict decimal value for two digits and restrict decimal more than one in numeric value

我有一个金额字段,我想限制用户使用小数点后不能使用两个以上的值:

  1. 小数点后应该只有两个值是选项。
  2. 用户不能在该字段中键入多个小数。

我正在使用以下regix,因为它无法正常工作可以提供任何帮助。

function validate(evt) {

    if (evt.keyCode == 8) { return true; }// for backspace problem in mozilla

    var theEvent = evt || window.event;
    var key = theEvent.keyCode || theEvent.which;

    key = String.fromCharCode(key);
    var regex = /[0-9 ]|\,\d{1,2}/;

    if (!regex.test(key)) 
    {
        theEvent.returnValue = false;
        if (theEvent.preventDefault) theEvent.preventDefault();
    }
}

实际上,只有通过设置数字字段的STEP和MAX例如

 <form> <input type="number" name="myNumber" required=true step=".01"> <button>send</button> </form> 

请让我知道这是否是您要查找的内容,但这意味着输入的任何值都必须是数字(因此只能是1个小数点),并且必须小于或等于1(如果您不想将其设置为.99,包括1),并且必须以0.01为增量(因此只能有2个小数位。

只要重新阅读您的问题,您就可以删除最大值(我以为我读的不超过1.0)

 var previousValue; function numberChanged(element){ if(validateMe(element)==false){ element.value=previousValue; }else{ previousValue=element.value; } function validateMe(element){ wholeNumber=element.value.split(".")[0]; if(element.value.split(".").length==1){ if(wholeNumber<-1 || > 999999999){ return false; } }else if(element.value.split(".").length==2){ decimalValue=element.value.split(".")[1]; if(decimalValue>-1 && decimalValue<100){ if(wholeNumber<-1 || > 999999999){ return false; } }else{ return false; } }else{ return false; } } 
 <input type="text" id="myNumber" onChange="numberChanged(this)" /> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM