js 输入框只能输入正数

 一、方案一

// index.vue



// index.js
import { Toast } from "mint-ui";
data:{
   money:'',
},
methods:{
 calculated(){
   if(this.inpMoney=='')return
   if(parseFloat(this.inpMoney)){
       if(isNaN(this.inpMoney)){
           this.inpMoney = '';
           Toast("输入有误,请重新输入!");
           return
       }
       this.inpMoney = Math.floor(this.inpMoney*100)/100;
   }else{
       this.inpMoney = '';
       Toast("输入有误,请重新输入!");
   }
 }
}

 

二、方案二:

// index.vue


// index.js
methods:{
    rulePositive(e){
        let str=e.target.value.replace(/[^\d.]/g,'')
        let relZero=/^0{2}$/ //开头连续多个0只保留一个
        if(relZero.test(str) || str.split(".").length>2 || (str.split(".").length==2 && str.split(".")[1].length>2)){//开头连续多个0只保留一个 & 只允许输入一个小数点 & 小数点后输入最多输入两位
            str=str.slice(0,-1)
        }
        if(/^\.$/.test(str)){//开头输入小数点自动补充0
            str='0.'
        }
        if(/^[0]+[1-9]+$/.test(str)){ //首位为0+非零数字,去掉首位0
            str=str.substring(1)
        }
        return str
    }
}

 

你可能感兴趣的:(#,JavaScript,javaScript)