求助正则表达式验证问题
JSP页面嵌入的JavaScript的正则表达式验证。
想验证文本框输入的是不是数字,最多两位小数。
正则表达式为:var reg=/^[1-9]\d*|([1-9]\d*|0)\.\d?[1-9]$/;
if(reg.test(price.value)==true){
return true;
}
但是输入12.2354之类的小数位超了的也能验证过,465asdf之类的后面是字母的也能验证过
不知道为什么,求帮助啊~
[解决办法]
<script>
function test(){
var nums=[123.1234, 12.1234, 1.1234, 1234, 123, 12, 1, 0, .1, 0.2, 0.12, 0.123, 1.1, 1.12, 1.123, 10.1, 10.12, 10.123, 345.1, 345.12, 345.123];
var reg=/^\d*(\.\d{0,2})?$/;
var len=nums.length;
for(var i=0;i<len;i++){
document.writeln("current.num="+nums[i]+", bool="+reg.test(nums[i])+"<br>");
}
}
test();
</script>
[解决办法]
/^\d+(\.\d{1,2})?$/