用于浮点和整数验证的JavaScript

JavaScript for float and integer number validation

本文关键字:验证 JavaScript 整数 用于      更新时间:2023-09-26

我试图从文本框中为validate integer values创建一个javascript函数。验证它以便只有integer and float值是可接受的最佳方法是什么?

数字验证所需的java脚本函数。

// remove whitespaces
var input = input.replace(/'s+/g,"");
// check if the input is a valid number
if(isFinite(input) && input != ''){
  // do your thing
}

请记住,isFinite只接受"20.50"之类的值,而不接受某些国家/地区的自定义值"20,50"。如果您需要这种灵活性,则需要进行额外的字符串预处理。在这个解决方案中,只允许使用空格作为千个分隔符(例如"100000")。

不幸的是,由于isFinite(")返回true,因此需要检查空字符串。

您也可以从用户CMS使用此函数(有关详细解释,请参阅:验证JavaScript中的十进制数-IsNumeric())

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

javascript中数字验证的最佳解决方案。

function isFloat(evt) {
var charCode = (event.which) ? event.which : event.keyCode;
if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
    alert('Please enter only no or float value');
    return false;
}
else {
    //if dot sign entered more than once then don't allow to enter dot sign again. 46 is the code for dot sign
    var parts = evt.srcElement.value.split('.');
    if (parts.length > 1 && charCode == 46)
      {
        return false;
      }

    return true;
}

}

只需复制和过去的javascript代码,并按如下键应用于您的文本框。。

<input type="text" onkeypress="return isFloat(event)"  />

onload =function(){ 
  var ele = document.querySelectorAll('.number-only')[0];
  ele.onkeypress = function(e) {
     if(isNaN(this.value+""+String.fromCharCode(e.charCode)))
        return false;
  }
  ele.onpaste = function(e){
     e.preventDefault();
  }
}
<input class="number-only" type=text />

JavaScript有一个内置函数isNaN(text)。只需将文本框的文本传递给此函数即可获得布尔结果。

var valid=!isNaN(值);例如:

!isNaN('0'); // true
!isNaN('34.56'); // true
!isNaN('.34'); // true
!isNaN('-34'); // true
!isNaN('foo'); // false
!isNaN('08'); // true

!isNaN(''), !isNaN(' '), !isNaN(''n't')等都是真的!

空白测试+isNaN FTW:

var valid = !/^'s*$/.test(value) && !isNaN(value);