微信小程序input输入框输入数字时只能输入小数点后两位
<input bindinput="moneyInput" type='digit' maxlength='10' />moneyInput(e) {var money;if (/^(\d?)+(\.\d{0,2})?$/.test(e.detail.value)) { //正则验证,提现金额小数点后不能大于两位数字money = e.deta...
文章共169字 · 阅读需要大约1分钟
一键AI生成摘要,助你高效阅读
问答
·
<input bindinput="moneyInput" type='digit' maxlength='10' value="{{money}}"/>
moneyInput(e) {
let price = e.detail.value;
price = price.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
price = price.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
price = price.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
price = price.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
// 去除整数前的0和小数点后多余的0,如011.020300 =》 11.0203
const reg1 = /0*([1-9]\d*|0\.\d+)/;
const reg2 = /(?:\.0*|(\.\d+?)0+)$/;
price = price.replace(reg1, '$1').replace(reg2, '$1');
this.setData({
price
})
},
更多推荐
已为社区贡献1条内容
所有评论(0)