[英]check if a given value is a positive number or float with maximum two decimal places
[英]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('37 .37'); //否:“ 37.37”被转换为非NaN的数字37.37
因此,如您所见,它在浮点数形式下适用于您的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.