用于浮点和整数验证的JavaScript

用于浮点和整数验证的JavaScript,javascript,validation,floating-point,integer,Javascript,Validation,Floating Point,Integer,我尝试使用javascript函数从文本框中验证整数值。验证它的最佳方法是什么,以便只接受整数和浮点值 数字验证所需的java脚本函数。JavaScript有一个内置函数isNaN(text)。只需将文本框的文本传递给此函数即可获得布尔结果 // remove whitespaces var input = input.replace(/\s+/g,""); // check if the input is a valid number if(isFinite(input) &&

我尝试使用javascript函数从文本框中验证整数值。验证它的最佳方法是什么,以便只接受
整数和浮点值


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

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

// 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

您也可以从用户处使用此功能(有关详细说明,请参阅:)

var valid=!伊斯南(价值); 例如:

!伊斯南('')!伊斯南('')!isNaN('\n\t')
等都是真的

空白测试+isNaN FTW:

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

在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;

}
函数isFloat(evt){
var charCode=(event.which)?event.which:event.keyCode;
如果(charCode!=46&&charCode>31&&charCode<48|charCode>57)){
警报(“请仅输入no或float值”);
返回false;
}
否则{
//如果点符号输入多次,则不允许再次输入点符号。46是点符号的代码
var parts=evt.srcmelement.value.split('.');
如果(parts.length>1&&charCode==46)
{
返回false;
}
返回true;
}
}

只需复制javascript代码并将其应用到键盘上的文本框中,如下所示

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

onload=function(){
var ele=document.querySelectorAll('.number only')[0];
ele.onkeypress=功能(e){
if(isNaN(this.value+“”+String.fromCharCode(e.charCode)))
返回false;
}
ele.onpaste=函数(e){
e、 预防默认值();
}
}

更好的是:向我们展示您尝试的
javascript函数。.点符号的charCode是190不是46让我更正我之前的评论:charCode是46 onkeypress和190 onkeydown。Keypress已弃用,请避免使用它。这里还有@DanielChikaka,backspace键代码的值是8
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;

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