繁体   English   中英

JavaScript检查值是否为数字,但不允许前导零

[英]JavaScript check if the value is number, but allow no leading zeros

我目前在一个项目中,需要检查用户是否输入了数字值。 当他输入以小数点( .20 )开头的数字时,就会出现问题。 我一直在寻找解决方案,但是现在我放弃了。 isNaN或isNumeric都不起作用。 还尝试检查: if(value > 0) ,但这仅在用户输入前导零时有效。 任何帮助将不胜感激! 提前致谢!

解决: isNaN对我不起作用,因为我使用parseInt()而不是parseFloat()。 现在一切正常。 我希望管理员为我提出的愚蠢问题辩解! 现在可以删除该线程。

更好且简单的方法是使用正则表达式:

var reg = new RegExp('^[1-9]\d*(\.\d+)?$');

要么

var reg = new RegExp('^[1-9]\d*(\.\d+)?$');

用户输入将是一个字符串(来自表单字段)。 根据此正则表达式检查该字符串,该字符串应该起作用。

例:

 if(reg.test(userInput)) {
  //returns true
} else {
  //returns false
}

工作演示http://jsfiddle.net/sPt7q/1

采用

if(parseFloat(n) > 0){}

小提琴中的js

var n = '.2';
if (n > 0) {
    alert(n);
}
if(parseFloat(n) > 0){
    alert(parseFloat(n));
}

尝试

function isInt(n) {
   return typeof n === 'number' && n % 1 == 0;
}

from: 如何检查数字是浮点数还是整数?

这确实在0.0上失败。

尝试这个:

var val = .21;
if (!isNaN(val) && val.toString().indexOf('.') == -1) {
    console.log('valid number:' + val);
} else {
    console.log('invalid number: ' + val);
}

的jsfiddle

暂无
暂无

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

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