关于在elementui 中的 el-input只能输入数字,以及三位数加一个点(从左往右)

最近在做项目的时候 遇到一个需求 控制 input 框中 只能 输入数字 ,最大长度是8位 ,输入的数字 每三位 显示效果要加 一个点 “.”
 效果图
遇到的 第一个 问题 : 如何 让用户输入的时候 每隔三位会自动加点:

解决方式 :我是把这个el-input 框 写成了组件 然后两个 样式设置 一样,把 两个input 输入框叠加在一起 最上面的input 框设置为 透明的 ,用户 输入的内容 调用一个input 事件处理之后让下面的 显示

this.value= this.value.replace(/\s/g, "").replace(/...(?!$)/g,"$&.");

遇到第二个 问题 : 如何 让用户输入的时候只能输入数字

  1. 尝试方式一:v-model.number
    发现问题 可以输入"e",".", "- "等一些特殊符号 , 而且 设置的maxLength会失效
  2. 尝试 方法二:
  	this.value= this.value.replace(/\s/g, "").replace(/...(?!$)/g,"$&.");

但是后面还是出现了各种问题 …比如用户移动光标 修改数据时,用户看到的光标位置 实际上是没有带点的 所以光标位置会不太一样 。
但是依旧可以用这个正则来解决 这个问题

this.value= this.value.replace(/\s/g, "").replace(/...(?!$)/g,"$&.");

最后 又发现 一个问题 ,我发现我真的是在写bug ,
用户在移动光标修改 数据时,一修改完,数据就刷新 光标就会自动回到最后面。
目前这个问题正在研究=-=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希尔瓦娜斯~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值