截取字符串 包含中文处理,一个中文字符等于2个长度

//截取字符串 包含中文处理,一个中文字符等于2个长度
//(串,长度,...样式)
console.log(stringintercept("一个一个123一个一个一个长度",12));

function stringintercept(str, len, hasDot) {
    var newLength = 0;
    var newStr = "";
    var chineseRegex = /[^x00-xff]/g;
    var singleChar = "";
    var strLength = str.replace(chineseRegex, "**").length;
    console.log(strLength);
    for (var i = 0; i < strLength; i++) {

        singleChar = str.charAt(i).toString();
        console.log(singleChar.match(chineseRegex));
        if (singleChar.match(chineseRegex) != null) {
            newLength += 2;
        } else {
            newLength++;
        }
        if (newLength > len) {
            break;
        }
        newStr += singleChar;
    }

    if (hasDot && strLength > len) {
        newStr += hasDot;
    }
    return newStr;
}
IT文库 » 截取字符串 包含中文处理,一个中文字符等于2个长度
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址