验证输入时,点后仅包含数字和小数

时间:2019-04-17 20:31:18

标签: javascript regex reactjs validation

我正在尝试进行验证,该验证必须接受最多包含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解决了我的问题。非常感谢您的帮助

1 个答案:

答案 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]))
}
相关问题