接到需求:輸入框限字?jǐn)?shù)——10個漢字谴轮,或者20個字母
實現(xiàn)邏輯:使用正則表達(dá)式判斷輸入框中文的字符長度,再將剩下的字符長度*0.5撑毛,兩者相加即可
具體實現(xiàn)如下:
validateTextLength(value) {
//中文书聚、中文標(biāo)點唧领、全角字符按1長度,英文雌续、英文符號斩个、數(shù)字按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);
}
}