字符串长度截取
2017-09-20 本文已影响5人
女王陛下的喵
/**
* js截取字符串,中英文都能用
* @param str: 需要截取的字符串
* @param len: 需要截取的长度
*/
function subString(str, len) {
var newLength = 0, newStr = '', singleChar;
var chineseRegex = /[^\x00-\xff]/g; //正则匹配
var strLength = str.replace(chineseRegex, "**").length; //获取字符长度
for(var i = 0; i < str.length; i++) {
singleChar = str.charAt(i); //返回指定位置的字符
if(singleChar.match(chineseRegex) != null) { //检测是否为中文,是的话就算两个字符
newLength += 2;
}else {
newLength++;
}
//字符长度大于要截取的长度就跳出循环
if(newLength > len) break;
newStr += singleChar;
}
if(strLength > len) { //字符长度大于要截取的长度就省略
newStr += "…";
}
return newStr;
}