如何限制两位数的十进制值并限制数值中的十进制数多于一个

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

本文关键字:十进制数 于一个 何限制 两位 十进制      更新时间:2023-09-26

我有一个数量字段,我想限制用户在小数之后,他们不能使用两个以上的值:

  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(你可以设置为0.99,如果你不想包括1),它必须是0.01的增量(所以它只能有2个小数点。

请重新阅读您的问题,您可以删除max(我认为我读取不超过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)" />