uni-app中对于金额输入的验证(保留两位小数)

input事件中绑定事件
class="inputText"
type="digit"
v-model="fee"
placeholder="请输入"
style="text-align:right"
@input="handleInput"
@blur="selectFee"
:maxlength="moneyMaxLeng"
/>
handleInput(e) {
let val = e.target.value;
val = val.replace(/^./g, "");
val = val.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
val = val.replace(/.{2,}/g, "."); //只保留第一个. 清除多余的
val = val.replace(/^0+./g, "0.");
val = val.match(/^0+[1-9]+/) ? (val = val.replace(/^0+/g, "")) : val;
val = val.match(/^\d*(.?\d{0,2})/g)[0] || "";
val = val
.replace(".", "")
.replace(/./g, "")
.replace("", ".");
if (val.includes(".")) {
let numDian = val.toString().split(".")[1].length;
if (numDian === 2) {
this.moneyMaxLeng = val.length;
}
} else {
this.moneyMaxLeng = 8;
}
this.fee = val;
}

你可能感兴趣的:(uni-app中对于金额输入的验证(保留两位小数))