// 只允许输入数值和几位小数
<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('.', '')
}