正则表达式检查带小数位的数字

时间:2012-12-17 12:26:36

标签: javascript regex decimal repeat

我有一个正则表达式来检查输入的价格。价格不能是5位数或更多,但可以包含选项十进制数。所以 -

  • 1000 =允许
  • 9999.99 =允许
  • 10000 =不允许
  • 100.000 =不允许

这是我到目前为止,它正确检查小数位数,但没有检查小数位前的位数。我做错了什么?

var reg = new RegExp("^(\d{0,4})+(\.[0-9]{2})?$");

1 个答案:

答案 0 :(得分:3)

你有一个错误的量词

var reg = new RegExp("^(\d{0,4})(\.[0-9]{2})?$");

只需删除+,你的正则表达式就可以了。

here on Regexr

使用此(\d{0,4})+,您将重复第一组,因此您可以在点之前匹配任意数量的数字。

如果我双重逃脱,你的jsfiddle对我有用

var reg = new RegExp("^\\d{0,4}(?:\\.\\d{2})?$");

或者不要将正则表达式放在字符串中

var reg = new RegExp(/^(\d{0,4})(\.[0-9]{2})?$/);