起因
當我們有些項目需要兼容比較低版本的瀏覽器的時候,CSS的字符截取就容易產生兼容性的問題,導致字符無法正確的截取,這時候就需要用js來進行字符串長度的截取,下面是我在項目中常用的中英文字符串長度截取代碼。
代碼
function subString(str, len, hasDot) {
var newLength = 0;
var newStr = "";
var chineseRegex = /[^\x00-\xff]/g;
var singleChar = "";
var strLength = str.replace(chineseRegex, "**").length;
for (var i = 0; i < strLength; i++) {
singleChar = str.charAt(i).toString();
if (singleChar.match(chineseRegex) != null) {
newLength += 2;
}
else {
newLength++;
}
if (newLength > len) {
break;
}
newStr += singleChar;
}
if (hasDot && strLength > len) {
newStr += "...";
}
return newStr;
}
使用
//截取中文4個長度的
var str='ddddddddddddsdfds';
subString(str,8,false)//截取字符串,長度中文8/2 4個長度,是否添加"..."