简单判断字符串长度很简单,如果要区分中英文,例如1个中文字符等价于2个英文字符(等),可以使这正则做控制,先看代码:
if (name.replace(/[^\x00-\xff]/g, "**").length === 16) {
_this.pageview.showTip({text: '分类名称长度超过8个字符'});
return;
}
关键在于[^\x00-\xff]
, 其实 就是 \xnn 这个匹配, 对应的也就是ASCII代码中十六进制代码为nn的字符,所以,[^\x00-\xff] 表示匹配非单字节的字符,例如汉字;单字节字符包括英文字母(符号)、数字……
所以这里的正则思路,也就是将汉字等非单字节字符的替换为2个单字节字符,这样统计的时候根据限制的数目*2就可以了。