input输入框限制过滤

复制代码
// 只允许输入数值和几位小数
<a-input v-model="num" @input="num=getMoney(num,2)" />
getMoney(str, num) { //str当前输入值,num是想要保留的小数位数
    str = String(str.replace(/[, ]/g,''));
    if (!str.trim()) {
        return str
    }
    var len1 = str.substr(0, 1)
    var len2 = str.substr(1, 1)
    // 如果第一位是0,第二位不是点,就用数字把点替换掉
    if (str.length > 1 && len1 == 0 && len2 !== '.') {
        str = str.substr(1, 1)
    }
    // 第一位不能是.
    if (len1 === '.') {
        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, '') // 保留数字和小数点
    if (num || num === 0) {
        var rest = str.split('.')[1]
        if (rest && rest.length > num) {
            rest = rest.substr(0, num)
            str = str.split('.')[0] + '.' + rest
        }
    }
    return str
}
复制代码
// 只能输入汉字、英文、数字(过滤特殊字符)
<a-input v-model="num" @keyup.native="btKeyUp" />
btKeyUp(e) { 
    e.target.value = e.target.value.replace(/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/g,"");
}
// 限制只能输入正整数
<a-input @keyup.native="handleInput" />
handleInput() {
    this.num = this.num.replace(/[^\.\d]/g, '')
    this.num = this.num.replace('.', '')
}

 

posted @   可不可以重名  阅读(183)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示