// 裁剪字符串(中文,英文,emoji表情)
SubStringEmoji(substring,maxLen){
maxLen = maxLen || 5;
if(substring){
let str_cut = new String();
let str_length = 0;
// var reg = new RegExp("[~#^$@%&!?%*]", 'g');
// if (substring.match(reg)) {
// return true;
// }
for ( var i = 0; i < substring.length;) {
var hs = substring.charCodeAt(i);
let a ="";
if (hs >= 0 && hs <= 128) {
str_length += 1;
a = substring.charAt(i);
i++;
} else if (0xd800 <= hs && hs <= 0xdbff) {
if (substring.length > 1) {
var ls = substring.charCodeAt(i + 1);
var uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
if (0x1d000 <= uc && uc <= 0x1f77f) {
str_length += 1;
a = substring.substring(i,i+2);
i+=2;
}else{
str_length += 1;
a = substring.substring(i,i+1);
i++;
}
}else{
str_length += 1;
a = substring.substring(i,i+1);
i++;
}
} else if (substring.length > 1) {
var ls = substring.charCodeAt(i + 1);
if (ls == 0x20e3) {
str_length += 1;
a = substring.substring(i,i+2);
i+=2;
}else{
a = substring.substring(i,i+1);
i++;
str_length += 1;
}
} else {
if (0x2100 <= hs && hs <= 0x27ff) {
str_length += 1;
a = substring.substring(i,i+2);
i+=2;
} else if (0x2B05 <= hs && hs <= 0x2b07) {
str_length += 1;
a = substring.substring(i,i+2);
i+=2;
} else if (0x2934 <= hs && hs <= 0x2935) {
str_length += 1;
a = substring.substring(i,i+2);
i+=2;
} else if (0x3297 <= hs && hs <= 0x3299) {
str_length += 1;
a = substring.substring(i,i+2);
i+=2;
} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030
|| hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b
|| hs == 0x2b50) {
str_length += 1;
a = substring.substring(i,i+2);
i+=2;
}else{
str_length += 1;
a = substring.substring(i,i+1);
i++;
}
}
//字符串处理
if (str_length > maxLen) {
str_cut = str_cut.concat("...");
break;
} else {
str_cut = str_cut.concat(a);
}
}
console.log("str_cut",str_cut);
return str_cut;
}
return "";
}