js截取中英文字符串无乱码

来源:互联网 发布:linux delay.h 编辑:程序博客网 时间:2024/06/09 22:51
// JS截取字符串 中文 是2个字符 英文 1个字符
bbc.subString = function(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;
}

0 0