![](/img/trans.png)
[英]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.