查看: 148  |  回复: 0
  js 截取字符串,1个中文算2位
楼主
发表于 2024年10月12日 19:23
<meta http-equiv="content-type" content="text/html; charset=utf-8">

<script>
function f_StrCN(str, len, hasDot) {
    // 1: str - 源字符串
    // 2: len - 要截取的长度。
    // 3: hasDot - 是否显示…,0不显示 1显示 。
    // f_StrCN("中国人123",7,1) 显示 中国人1
    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;
}

alert(f_StrCN("中国人123",7,1));
alert(f_StrCN("中国人123",7,0));
alert(f_StrCN("中国人123",1,1));
alert(f_StrCN("中国人123",2,1));
</script>

运行结果:

中国人1...
中国人1
...
中...


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com