input 保留两位小数 并且只能有一个小数点

Posted 秋苏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了input 保留两位小数 并且只能有一个小数点相关的知识,希望对你有一定的参考价值。

1.适用于uni-app小程序,可简单改造成源生小程序版

2.限制整数位只能为0-9999之间的数字

3.最多两位小数

4.首位为小数点时,变成0.

5.只能输入一个小数点

 

<template>
    <input class="inputPrice" :maxlength="maxLength" type="digit" v-model="currentPrice" @input="checkPrice">
</template>
<script>
    export default {
        data() {
            return {
                maxLength: 5,
                currentPrice: ‘‘
            }
        },
        methods: {
            checkPrice: function(e) {
                let that = this;
                let price = e.detail.value
                let maxLength = price.indexOf(‘.‘);
                if (price.indexOf(".") < 0 && price != "") {
                    //‘超过4位则大于1万元‘
                    if (price.length > 4) {
                        price = price.substring(0, price.length - 1)
                        uni.showToast({
                            title: ‘金额最高不能超过1万元‘,
                            icon: ‘none‘
                        })
                    } else {
                        price = parseFloat(price);
                    }
                } else if (price.indexOf(".") == 0) {
                    //‘首位小数点情况‘
                    price = price.replace(/[^$#$]/g, "0.");
                    price = price.replace(/\.{2,}/g, ".");
                } else if (!(/^(\d?)+(\.\d{0,2})?$/.test(price))) {
                    //去掉最后一位
                    price = price.substring(0, price.length - 1)
                }
                that.$nextTick(function() {
                    //‘有小数点时,最大长度为7位,没有则是5位‘
                    that.maxLength = maxLength == -1 ? 5 : 7
                    that.currentPrice = price
                })
 
            }
        }
    }
</script>

 

以上是关于input 保留两位小数 并且只能有一个小数点的主要内容,如果未能解决你的问题,请参考以下文章

input输入框只能输入正数和小数(保留小数点后两位)

js正则限制input框输入只能输入大于0的整数或者保留两位数的小数

vue element组件库<el-input>限制只能输入数字,且保留小数后两位

iOS 限制输入框只能输入小数并且小数点后只能一位

Oracle数据库中的如何保留两位小数 并且在java中保留两位小说插入数据表中

控制input标签中只能输入数字以及小数点后两位