<template>标签:coin,Element,money,value,replace,formFieldsData,表单,小数 From: https://blog.51cto.com/u_15959833/6046876
<div id="platformActivity">
<el-form :model="formFieldsData">
<!-- 充值金额保留两位小数 -->
<el-form-item label="充值金额" prop="money" label-width="120px">
<el-input
placeholder="请输入充值金额"
clearable style="width:90%;"
v-model="formFieldsData.money"
@input="(value)=>{this.formFieldsData.money=this.toFloatNumer(value)}">
</el-input>
</el-form-item>
<!-- 赠送书币输入只能为整数 -->
<el-form-item label="赠送书币" prop="coin" label-width="120px">
<el-input
placeholder="请输入赠送书币"
clearable style="width:90%;"
v-model="formFieldsData.coin"
@input="(value)=>{this.formFieldsData.coin=value.replace(/\D/g,'');}">
</el-input>
</el-form-item>
</el-form>
</div>
</template>
<script>
export default {
name: "platformActivity",
data() {
return {
// 表单数据
formFieldsData:{
// 书币
coin:""
// 充值
money:"",
},
};
},
methods: {
// 转换两位小数
toFloatNumer(value) {
// 清除"数字"和"."以外的字符
value = value.replace(/[^\d.]/g,"");
// 清除开头的"."
value = value.replace(/^\./g,"");
// 将超过两位小数以外的数字替换为字符"."
value = value.replace(/\.{2,}/g,".");
// 除了第一个小数点以后,后面的小数点全部替换为空
value = value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
// 只能输入两个小数
value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
// 如果没有小数点,首位不能为类似于 01、02的数字
if(value.indexOf(".")< 0 && value !=""){
if(value.substr(0,1) == '0' && value.length == 2){
value= value.substr(1,value.length);
}
}
return value
}
},
};
</script>