需求:
1、輸入值保留兩位小數(shù)
2、最大輸入8位數(shù)并且保留兩位小數(shù)
3各墨、不允許輸入非數(shù)字字符
<a-input v-model="value" placeholder="請(qǐng)輸入" :max-length="11" @blur="inputBlur" @change="limitNumber" />
limitNumber() {
value = value.replace(/[^\d.]/g, ''); // 清除"數(shù)字"和"."以外的字符 只能輸入數(shù)字和小數(shù)點(diǎn)
value= value.replace(/\.{2,}/g, '.'); // 不能連續(xù)輸入兩個(gè)及以上小數(shù)點(diǎn)
value = value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); // 只保留第一個(gè)".", 清除多余的"."
value = value.replace(/^(-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); /// 只能輸入位小數(shù)
// 如果在第八位沒(méi)有點(diǎn)就自動(dòng)加上 '.00'
if (value.split('')[8] !== '.' && value.length > 8) {
value = value.substring(0, 8) + '.00';
}
},
inputBlur() {
// 如果輸入有值并且沒(méi)有小數(shù)點(diǎn)且長(zhǎng)度小于8自動(dòng)補(bǔ) '.00'
if (value.indexOf('.') == -1 && value.length <= 8 && value != '') {
value =value + '.00';
}
value = Number(value).toFixed(2);
},