繁体   English   中英

检查输入字符串是否为正整数/浮点数

[英]Check if an input string is a positive int/float number

在我的网页上有一个输入框,只应允许用户输入一个正整数/浮点数(即应该全部允许1234、123.4、12.34、1.234)。

为了确保该值有效,我有一个函数在将其发送到服务器之前先对其进行验证:

function isPositiveFloat(s){
    return String(Number(s)) === s && Math.floor(Number(s)) > 0;
}

该函数非常适合以下情况: isPositiveFloat(1.0)将返回false,因为事实证明Number(1.0)会将其转换为1 ,因此使验证失败。

关于如何解决此问题的任何建议? 使用正则表达式是唯一的方法吗?

在此先感谢您的帮助!

您只需要使用!isNaN(s)以及Number(s)>0

function isPositiveFloat(s) {
  return !isNaN(s) && Number(s) > 0;
}

演示:

 function isPositiveFloat(s) { return !isNaN(s) && Number(s) > 0; } 
 <input type="text" onchange="console.log(isPositiveFloat(this.value))" /> 

您可以检查isNaN()示例的MDN参考

isNaN('37 .37'); //否:“ 37.37”被转换为非NaN的数字37.37

因此,如您所见,它在浮点数形式下适用于您的情况。

暂无
暂无

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

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