簡體   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