请问一下,微信小程序input组件怎么 限制输入 最多10个英文或5个中文
目前做法:但是setData不起作用 input框里面的值和打印出来的值不一样
getName (e) {
let textLength = 0
let name= ''
let nameArr = e.detail.value.split("");
nameArr.forEach((letter) => {
textLength = textLength + this.validateTextLength(letter)
if (textLength <= 5) {
name= name+ letter
}
})
this.setData({
name: name
})
console.log(this.data.name);
},
validateTextLength (value) {
// 中文、中文标点、全角字符按1长度,英文、英文符号、数字按0.5长度计算
let cnReg = /([\u4e00-\u9fa5]|[\u3000-\u303F]|[\uFF00-\uFF60])/g;
let mat = value.match(cnReg);
let length = 0;
if (mat) {
length = (mat.length + (value.length - mat.length) * 0.5);
return length;
} else {
return value.length * 0.5;
}
},
解决了
在input组件上添加双向绑定即可
model:value="{{name}}"