专注前端行业精选
js正则过滤金额输入时限制只能输入数字与1个小数点,且0开头第二位则不能为0
作者:鹏仔先生日期:2023-09-12 18:03:20浏览:58分类: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的数字键盘,每次触发点击都会返回当前点击的数字或小数点,然后自行拼接,那么就在拼接后,使用正则的方式将其按照需求过滤掉即可。
上方代码我没进行动态封装,代码可自行复制后封装,通过动态传值来实现公用。
- 上一篇:uniapp中使用uQRCode生成二维码功能
- 下一篇:已经是最后一篇了
猜你还喜欢
- 09-12 js正则过滤金额输入时限制只能输入数字与1个小数点,且0开头第二位则不能为0
- 07-12 uniapp中使用uQRCode生成二维码功能
- 07-19 解决谷歌浏览器跨域问题has been blocked by CORS policy: The request client is not a secure context and the resou
- 07-15 小程序嵌入网页向小程序跳转并传参,微信小程序中实现公众号授权获取openId
- 07-13 vue中实现文件批量打包压缩下载(以及下载跨域问题分析)
- 07-08 uniapp调用地图,进行位置查询,标记定位
- 11-05 js截取字符串前几位或者截取字符串后几位
- 10-25 js替换字符串某个字符,js修改字符串中指定字符
- 09-26 vue给单独组建的body添加类名
- 08-12 elemtnui 表格如何修改某行文字颜色
- 08-03 vue中调用百度地图 获取经纬度
- 07-09 uniapp小程序实现录音 uniapp小程序长按录音 点击播放等功能(CSS实现语音音阶动画效果)
取消回复欢迎 你 发表评论:
- 搜索
- 随机tag
暂无评论,来添加一个吧。