const vFormatNumber = {
mounted(el, binding) {
el.addEventListener('input', (event) => {
let newVal = event.target.value;
const precision = binding.value.precision
newVal = newVal.replace(/[^\d.]/g, '') // 能数字和小数点
newVal = newVal.replace(/^\./g, '') // 去掉开头的点
newVal = newVal.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.') // 处理多个点的情况
if (precision && Number(precision) > 0) {
const d = new Array(Number(precision)).fill('\\d').join('') // 构建正则表达式
const reg = new RegExp(`^(\\-)*(\\d+)\\.(${d}).*$`, 'ig')
newVal = newVal.replace(reg, '$1$2.$3') // 限制小数位数
}
if (newVal && !newVal.includes('.')) {
newVal = newVal.replace(/^0+/, '0') //
}
// 更新输入框的值
event.target.value = newVal;
// 同步 v-model 的值
el.querySelector("input").dispatchEvent(new Event("input"))
})
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-02-20 vscode如何一键生成代码模板?