// 字符串截取 包含对中文处理
function byteCut (str, n) { // str: 被截取字符串;n:截取长度else {
let len = 0;
let tmpStr = '';
for (let i = 0; i < str.length; i++) { // 遍历字符串
if (/[\u4e00-\u9fa5]/.test(str[i])) { // 判断为中文 长度为三字节(可根据实际需求更换长度,将所加长度更改即可)
len += 3;
} else { // 其余则长度为一字节
len += 1;
}
if (len > n) { // 当长度大于传入的截取长度时,退出循环
break;
} else {
tmpStr += str[i]; // 将每个长度范围内的字节加入到新的字符串中
}
}
return tmpStr; // 返回截取好的字符串
}
如有更好的方法,欢迎随时讨论交流~