/^\d+(\.\d*)?$|^\.\d+$/,这个正则既不限制开头0的个数也不限制小数点后面的数字的多少,都返回true.
这个才是正确判断条件:
1、正数,2、两位数及以上不能以0开头,3、最多只有两位小数
/^[1-9]+\d*(\.\d{0,2})?$|^0?\.\d{0,2}$/.test(str)<input type="text" value="" id="number"><button class="btn">提交</button>
<script type="text/javascript">
$(function(){
$(".btn").click(function(){
var number = $('#number').val(),
n = /^[1-9]\d*$/
if(!n.test(number)){
alert('请输入正整数')
}
})
})
</script>
到底需要匹配哪些数字?正整数:^[1-9]\d*$
正数:^(?:0\.\d*[1-9]|[1-9]\d*(?:\.\d*[1-9])?)$
非负整数:^(?:0|[1-9]\d*)$
非负数:^(?:0|[1-9]\d*)(?:\.\d*[1-9])?$
整数:^(?:0|\-?[1-9]\d*)$
实数:^(?:0|\-?(?:0\.\d*[1-9]|[1-9]\d*(?:\.\d*[1-9])?))$