js通过字节长度截取中英文混合字符串

时间:2023-01-09 23:15:29


/**
* 截取字符串 中英文混合
* @param str待处理字符串
* @param len截取字节长度 中文2字节 英文1字节
*/
function subString1(str, len){
var regexp = /[^\x00-\xff]/g;// 正在表达式匹配中文
// 当字符串字节长度小于指定的字节长度时
if (str.replace(regexp, "aa").length <= len) {
return str;
}
// 假设指定长度内都是中文
var m = Math.floor(len/2);
for (var i = m, j = str.length; i < j; i++) {
// 当截取字符串字节长度满足指定的字节长度
if (str.substring(0, i).replace(regexp, "aa").length >= 0) {
return str.substring(0, i);
}
}
return str;
}

function test(){
alert(subString1('123你我他',5));
}