百变鹏仔-专注前端行业精选
js正则过滤金额输入时限制只能输入数字与1个小数点,且0开头第二位则不能为0
作者:鹏仔先生日期:2023-09-12 18:03:20浏览:1732分类:JavaScript
今天写小程序时,有个充值功能,需要输入充值金额,我看了下支付宝的水电表缴费交互效果,发现调启数字键盘后“输入0后第二位则不能为0,只能为小数点”“第一位不能输入小数点”“保留两位小数”“同时也只能输入数字与小数点(在非数字键盘的情况下)”,看到这兴趣就来了,肯定得搞起来。
代码如下
// 调启数字键盘输入事件 valChange(val) { this.amount += val; // 只能输入"数字"和"." this.amount = this.amount.replace(/[^\d.]/g, ''); // 第一位字符不能为"." this.amount = this.amount.replace(/^\./g, ''); // 只能输入一个小数点且只保留一个 this.amount = this.amount.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); // 只能输入两位小数 this.amount = this.amount.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); // 如果第一位为"0",第二位必须为".",否则替换 this.amount = this.amount.replace(/^0(?!\.|$)(.*)/, '$1'); }
如上,由于我用的uview的数字键盘,每次触发点击都会返回当前点击的数字或小数点,然后自行拼接,那么就在拼接后,使用正则的方式将其按照需求过滤掉即可。
上方代码我没进行动态封装,代码可自行复制后封装,通过动态传值来实现公用。
手机扫码访问
猜你还喜欢
- 11-01 vue中实现代码高亮
- 08-09 vue动态修改网站的icon图标
- 07-08 VUE中ECharts提示框tooltip自动切换
- 07-03 网页中生成微信小程序二维码
- 07-02 微信小程序判断是安卓还是苹果
- 06-28 vue实现表格自动滚动功能 vue-seamless-scroll
- 06-25 uniapp页面跳转的几种方式
- 04-19 VUE实现点击复制
- 04-16 vue将页面生成图片 vue生成海报
- 04-16 vue路由切换滑动效果 vue页面跳转交互 vue实现动画跳转
- 04-07 vue跳转页面清除历史记录,页面跳转删除历史记录
- 02-22 VUE You are using the runtime-only build of Vue where the template compiler is not available. Either
取消回复欢迎 你 发表评论:
- 搜索
- 随机tag
暂无评论,来添加一个吧。