...
大前端

JS取字符串长度含中文不准的解决方案

前段时间用到文字长度获取的需求
再晚上查了很多现在分享出来 强烈推荐第三种方法!!!

方法一

var GetLength = function(str) {
    ///<summary>获得字符串实际长度,中文2,英文1</summary>
    ///<param name="str">要获得长度的字符串</param>
    var realLength = 0, len = str.length, charCode = -1;
    for (var i = 0; i < len; i++) {
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) 
              realLength += 1;
        else
              realLength += 2;
    }
    return realLength;
};

alert(GetLength('测试测试ceshiceshi));

测试了不好用

方法二

var GetLength = function(str) {
    return str.replace(/[\u0391-\uFFE5]/g,"aa").length;   //先把中文替换成两个字节的英文,在计算长度
};

alert(GetLength('测试测试ceshiceshi'));

还是不好用

方法三 (这个牛逼,包含中文,字母,数字,特殊字符)

怎么个原理呢
首先我们用split('')将字字符串分割成数组,然后length一下不就出来长度了嘛[坏笑]

var GetLength = function(str) {
    return str.split('').length;
};
alert(GetLength('测试测试ceshiceshi'));

快去试试吧~

PHP Composer 安装与使用 怎样通过身份证号码取到年龄
biu biu biu
ubuntu安装配置heirloom-mailx使用外部smtp发送外网email mysql 数据库恢复 frm,ibd文件恢复数据 数据库修复 OpenVpn 实现客户端账号密码登录 c语言颜色处理函数分享 谷歌浏览器多开工具,可一浏览器登陆多个账号(小号)