[英]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.