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 @ 2022-08-16 15:43  可不可以重名  阅读(193)  评论(0)    收藏  举报