...
大前端

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
分享一个免费电路(arduino、单片机)仿真软件SimulIDE,遥遥领先! arduino esp8266 websocket 简单示例 RustDesk免费的PC/android安卓手机远程桌面开源软件 小米手环解锁MacOS苹果笔记本MacBook Pro electron 防止多开 只允许一个实例允许并在重复打开后显示第一个实例