js正则表达式 判断输入框是否为正整数或者正整数保留两位小数

JavaScript030

js正则表达式 判断输入框是否为正整数或者正整数保留两位小数,第1张

/^\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])?))$