input限制只能輸入數字,且保留小數后兩位


<el-form-item label="海運運費系數">
              <el-input
                v-model.trim="ruleForm.oceanFreightCoefficient"
                maxlength="8"
                @keyup.native="value=oninput(value)"
                @change="value=oninput(value)"
              ></el-input>&nbsp;&nbsp;
              <span>元/千克</span>
 </el-form-item>
oninput(num) {
          console.log(num)
            var str = num
            var len1 = str.substr(0, 1)
            var len2 = str.substr(1, 1)
            var lenLast=str.substr(str.length-1)
            //如果第一位是0,第二位不是點,就用數字把點替換掉
            if (str.length > 1 && len1 == 0 && len2 != ".") {
                str = str.substr(1, 1)
            }
            //第一位不能是.
            if (len1 == ".") {
                str = ""
            }
            //最后一位不能是.
            if (str.length==8&&lenLast == ".") {
                str = ""
            }
            //限制只能輸入一個小數點
            if (str.indexOf(".") != -1) {
                var str_ = str.substr(str.indexOf(".") + 1)
                if (str_.indexOf(".") != -1) {
                    str = str.substr(0, str.indexOf(".") + str_.indexOf(".") + 1)
                }
            }
            //正則替換
            str = str.replace(/[^\d^\.]+/g, '') // 保留數字和小數點
            //str = str.replace(/\.\d\d\d$/,'') // 小數點后只能輸兩位
            str = str.replace(/^\D*([0-9]\d*\.?\d{0,2})?.*$/,'$1') // 小數點后只能輸 2 位
            return str
}        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM