以英文限制在10个,中文限制在五个为例
<input ref="ipt" class="inputtext" v-model="item.name" @input="changeValue" />
methods:{ //输入框字数限制 changeValue() { let leng = this.validateTextLength(this.item.name); if (leng >= 5) { this.$refs.ipt.maxLength = leng; } else { this.$refs.ipt.maxLength = 10; } }, validateTextLength(value) { // 中文、中文标点、全角字符按1长度,英文、英文符号、数字按0.5长度计算 let cnReg = /([\u4e00-\u9fa5]|[\u3000-\u303F]|[\uFF00-\uFF60])/g; let mat = value.match(cnReg); let length; if (mat) { length = mat.length + (value.length - mat.length) * 0.5; return length; } else { return value.length * 0.5; } }, }
参考:https://www.cnblogs.com/ybixian/p/10729047.html
原文:https://www.cnblogs.com/lovebear123/p/12063411.html