2 solariceberg solariceberg 于 2013.12.06 09:49 提问

JavaScript中正则表达式校验数值输入问题

需求如下:有一个文本输入框,只能输入数字,数字最大4位保留2位小数并且小数可有可无,最大值不能超过100。
实现如下:
var pattern = /^(\d{1,2}(.\d{1,2})?)|100$/;
alert(pattern.test("10.00"));
返回的是false;
alert(pattern.test("100"));
返回的是true;
有时候更会出现都返回true的现象,感觉很混乱。
请教一下大家,给点意建。

1个回答

fly0snow
fly0snow   2014.01.09 19:51
已采纳

你应该把.转义,像这样: /^(\d{1,2}(\.\d{1,2})?)|100$/
因为对于100来说,.会匹配0,所以100会匹配成功。
至于10.00,我实验是可以匹配成功的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!