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的现象,感觉很混乱。
请教一下大家,给点意建。

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