簡體   English   中英

驗證輸入時,點后僅包含數字和小數

[英]Validate input with only number and decimal after dot

我正在嘗試進行驗證,該驗證必須接受最多包含3個字段的十進制數字。 僅當您輸入了至少一個數字時,才會出現逗號

Allow:
100000
1,0
1
1,00


Doesn't Allow:
,00
,150
,0
100 100

我嘗試了(我正在使用React來獲取輸入值):

var code = (event.which) ? event.which : event.keyCode;
if (code !== 46 && (code < 48 || code > 57)) {
   event.preventDefault();
}

到目前為止,我已經設法僅限制字段和重點。 但是,它仍然允許.000並且不限於3個小數位。

我怎樣才能做到這一點?

--------------更新解決方案--------------

我找到了解決我問題的答案 非常感謝您的幫助

我不確定我是否很好地理解了您的問題(我可以根據您的輸入來更新我的解決方案),但是我認為您需要一個正則表達式來匹配您的總體價值,而不是單個輸入:

function is_valid(value) {
  var exp = /^\d+(,*\d+)?$/;
  return exp.test(value)
}

tests = ["100,000", "1,0", "1", "1,00", ",00", ",150", ",0", "100 100"]

for(var i=0; i<tests.length; i++) {
  console.log(tests[i], is_valid(tests[i]))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM