日期:2014-05-17  浏览次数:20609 次

求助正则表达式验证问题
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})?$/