我正在尝试进行验证,该验证必须接受最多包含3个字段的十进制数字。仅当您输入至少一个数字时,才会出现逗号
Allow:
100,000
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个小数位。
我该怎么做?
--------------更新解决方案--------------
我发现this answer解决了我的问题。非常感谢您的帮助
答案 0 :(得分:1)
我不确定我是否很好地理解了您的问题(我可以根据您的输入来更新我的解决方案),但是我认为您需要一个正则表达式来匹配您的总体价值,而不是单个输入:
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]))
}