我有一个正则表达式来检查输入的价格。价格不能是5位数或更多,但可以包含选项十进制数。所以 -
这是我到目前为止,它正确检查小数位数,但没有检查小数位前的位数。我做错了什么?
var reg = new RegExp("^(\d{0,4})+(\.[0-9]{2})?$");
答案 0 :(得分:3)
你有一个错误的量词
var reg = new RegExp("^(\d{0,4})(\.[0-9]{2})?$");
只需删除+
,你的正则表达式就可以了。
使用此(\d{0,4})+
,您将重复第一组,因此您可以在点之前匹配任意数量的数字。
如果我双重逃脱,你的jsfiddle对我有用
var reg = new RegExp("^\\d{0,4}(?:\\.\\d{2})?$");
或者不要将正则表达式放在字符串中
var reg = new RegExp(/^(\d{0,4})(\.[0-9]{2})?$/);