校验输入框输入的字符占多少字节长度
utf-8下字符编码规则
- 一个us-ascii字符只需1字节编码(U+0000~U+007F)
- 带有变音符号的拉丁文、希腊文、西里尔字母、阿拉伯文、叙利亚文等字母需要2字节编码(U+0080~U+07FF)
- 其他语言的字符(包括中日韩文字、东南亚文字、中东文字等)包含了大部分常用字,使用3字节编码
- 其他极少使用的语言字符使用4字节编码
DisplayName:[{
type: "string", validator: (rule, value, callback) => {
let len=0;
for (var i = 0; i < value.length; i++) {
let c_hex = parseInt(value.charCodeAt(i));
if (c_hex<=0x00007f){
len+=1; //在UTF-8编码占用1个字节
}else if(c_hex>=0x000080 && c_hex<=0x0007ff){
len+=2; //在UTF-8编码中占用2个字节
}else if(c_hex>=0x000800 && c_hex<=0x00ffff){
len+=3; //在UTF-8编码中占用3个字节
}else{
len+=4;
}
}
if (len>63) {
callback(new Error(''));
} else { callback(); }
}, trigger: "change"
}],