金额校验 js

金额

(1)判断某些值是否是金额(首字母不能为0,不能超过两位小数点,最后一位可以是小数点.,不在范围内的需要提醒)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    <input class="input" />
    <div>处理后的值: <span class="filter"></span></div>

    <script type="text/javascript">
        var $input = document.querySelector('.input');
        var $filter = document.querySelector('.filter');

        $input.oninput = function (e) {
            console.log('value',e.target.value)
            $filter.innerHTML = testPrice(e.target.value,0,6666);
        }

        /* 判断某些值是否是金额(首字母不能为0,不能超过两位小数点,最后一位可以是小数点.,不在范围内的需要提醒) */
        testPrice = function (num,min,max) {
           var reg = new RegExp('^([1-9]\\d*|[0])(\\.\\d{0,2})?$','g');
           if(!reg.test(num+'')){
               return '<span style="color:red;">非法输入</span>';
           }

           var numFloat = parseFloat(num);
           if(num < min){
              return '<span style="color:red;">请输入大于'+min+'的数字</span>';
           }
           if(num > max){
              return '<span style="color:red;">请输入小于'+max+'的数字</span>';
           }

           return num;
        }
    </script>
</body>
</html>

(2)在(1)的基础上附加条件:自动去除(除了0.00,0.,0.2,0.32等小于1的数)金额前面的0.

testPrice = function (num,min,max) {
           var reg = new RegExp('^\\d+(\\.\\d{0,2})?$','g');
           var regClear = new RegExp('^0+(?=[0-9])','g');
           if(!reg.test(num+'')){
            return '<span style="color:red;">非法输入</span>';
           }

           var numFloat = parseFloat(num);
           if(num < min){
            return '<span style="color:red;">请输入大于'+min+'的数字</span>';
           }
           if(num > max){
            return '<span style="color:red;">请输入小于'+max+'的数字</span>';
           }
           return num.replace(regClear,'');
        }
posted @ 2020-09-02 23:31  胡姐姐  阅读(199)  评论(0编辑  收藏  举报