需求如下:有一个文本输入框,只能输入数字,数字最大4位保留2位小数并且小数可有可无,最大值不能超过100。
实现如下:
var pattern = /^(\d{1,2}(.\d{1,2})?)|100$/;
alert(pattern.test("10.00"));
返回的是false;
alert(pattern.test("100"));
返回的是true;
有时候更会出现都返回true的现象,感觉很混乱。
请教一下大家,给点意建。
JavaScript中正则表达式校验数值输入问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- fly0snow 2014-01-09 11:51关注
你应该把.转义,像这样: /^(\d{1,2}(\.\d{1,2})?)|100$/
因为对于100来说,.会匹配0,所以100会匹配成功。
至于10.00,我实验是可以匹配成功的。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报