如何控制其输入0012或者00000.12时,让它不符合要求就不让它输入?
<input type="text" name="number" id="number">
<script>
var reg = /([1-9]\d*|0)+(\.\d{0,2})?/;
$("#number").bind({
keyup:function(){
this.value=(this.value.match(reg)||[''])[0];
},
blur:function(){
this.value=(this.value.match(reg)||[''])[0];
}
});
</script>
var reg = /^([1-9]\d*|0)(\.\d{1,2})?$/;
function test(str)
{
console.log(reg.test(str))
}
test("0.123") // false
test("0.12") // true
test("01.12") // false
test("1.12") // true
test("0.123") // false
test("123") // true
test("0123") // false
test("0") // true
test("0.") // false
test("1.") // false
// 如果允许最后两种情况,正则里的 \d{1,2} 改成 \d{0,2}
^([1-9]\d*|0)(\.\d{1,2})?$
/^-?[0-9]*$|^-?[0-9]+\.[0-9]{1}$|^-?[0-9]+\.[0-9]{2}$|^-?[0-9]+\.$/.test(number)