微信小程序输入限制:金额限制,名字限制,电话号码限制
- 限制金额输入,只能输入数字和一个小数点
- 限制名字输入,只能输入数字字母中文
- 限制电话号码输入,只能输入数字
博主正则不好,实现功能记录下来当做资料查询。
//金额输入限制
<view>
<input value="{{money}}" placeholder="请输入金额" type="digit" bind:change="moneyChange" bindinput="moneyChange" bind:confirm="moneyChange" maxlength="7" />
</view>
//用户名输入限制,输入字母数字中文
<input value="{{username}}" placeholder="请输入用户名" type="text" bindinput="nameChange" bind:change="nameChange" bind:confirm="nameChange" />
//手机号限制
<input value="{{phone}}" placeholder="请输入手机号" maxlength="11" type="number" bindinput="phoneChange" bind:change="phoneChange" bind:confirm="phoneconfirm" />
data:{
money:"",
username:"",
phone:""
}
moneyChange(event) {
let money = this.money(event.detail.value);
// let money = event.detail.value;
this.setData({
money: money
})
return money
},
// 验证输入金额
money(val) {
let num = val.toString(); //先转换成字符串类型
if (num.indexOf('.') == 0) { //第一位就是 .
num = '1' + num
} else if (num.indexOf('0') == 0) {
num = ''
}
num = num.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
num = num.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
num = num.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
num = num.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
if (num.indexOf(".") < 0 && num != "") {
num = parseFloat(num);
}
return num
},
// 输入用户名
nameChange(event) {
// console.log(event.detail)
let username = this.nameJy(event.detail.value);
this.setData({
username: username
})
return username
},
nameJy(val){
let str = val.toString(); //先转换成字符串类型
return str.replace(/[^\u4e00-\u9fa5\w]/g,'');
},
// 输入手机号
phoneChange(event) {
// let phone = event.detail.value || event;
let phone = this.phones(event.detail.value);
this.setData({
phone: phone
})
return phone
},
phones(val) {
let num = val.toString(); //先转换成字符串类型
num = num.replace(/\D/g, '')
return num
},
// 手机号码输入完点击完成时验证
phoneconfirm(event) {
const phone = event.detail.value || event;
if (!/^1[3456789]\d{9}$/.test(phone) || phone.length < 11) {
wx.showToast({
title: '您输入的手机号码有误',
icon: 'none',
duration: 2000
})
} else {
this.setData({
phone: phone
})
}
},