接到需求:输入框限字数——10个汉字,或者20个字母
实现逻辑:使用正则表达式判断输入框中文的字符长度,再将剩下的字符长度*0.5,两者相加即可
具体实现如下:
validateTextLength(value) {
//中文、中文标点、全角字符按1长度,英文、英文符号、数字按0.5长度计算
let cnReg = /([\u4e00-\u9fa5]|[\u3000-\u303F]|[\uFF00-\uFF60])/g;
let mat = value.match(cnReg);
let length = 0;
if (mat) {
return (length = mat.length + (value.length - mat.length) * 0.5);
} else {
return (length = value.length * 0.5);
}
}