在utils/test.js中,
export function toFixedStr(str) {
let float = str.split(".")[0];
str = str.replace(/[^\d.]/g, ""); // 清除"数字"和"."以外的字符
str = str.replace(/\.{2,}/g, "."); // 不能连续输入两个及以上小数点
str = str.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); // 只保留第一个".", 清除多余的"."
str = str.replace(/^(-)*(\d+)\.(\d\d).*$/, "$1$2.$3"); // 只能输入两个小数
return float.length > 1 && float.indexOf("0") == 0 ? Number(str) : str;
}
在vue中,
<template>
<div>
<el-input v-model="valuestr" @input="ToFixedStr"></el-input>
</div>
</template>
<script>
import { toFixedStr } from "@/utils/test.js";
export default {
data() {
return {
valuestr: ""
};
},
methods: {
ToFixedStr(str) {
this.valuestr = toFixedStr(str);
}
}
};
</script>