js获取一个字符串的字节长度

js获取一个字符串的字节长度

因为中文字占两个字节,英文占一个字节。
方法1:把中文字替换成两个字母。然后计算长度。
方法2:直接判断中文,长度+2。

运用的方法大同小异。都是通过正则表达式,写unicode编码。

方法1:
var str = '2333哈哈';

var length=0;

str = str.replace(/[\u4e00-\u9fa5]/g,"aa");

alert(str);
alert(str.length);

方法1中
[\u4e00-\u9fa5]:匹配中文字符
[^\x0000-\x00ff]:匹配双字节字符(包括中文字)

正则表达示 /[\u4e00-\u9fa5]/gg必须要,global,全部都要检查的意思。没有的话输出的是(2333aa哈)

方法2:
function getLength(str){

            var length=0;
            var reg = /[\u4e00-\u9fa5]/;
            for(var i=0;i<str.length;i++){

                if(reg.test(str.charAt(i))){

                    length+=2;

                }else{

                    length++;
                }
            }
            return length;
        }
        var str = '2333哈哈哈';
        console.log(getLength(str));

方法2中的函数

str.charAt(i) : 获取i位置的字符

扩展:

charCodeAt(i) : 获取字符串的num位置的字符的unicode编码 
fromCharCode(i) : 获取unicode编码对应的字符

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 忘了从哪收集的资料了,放这儿,以备不时之需。 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{...
    study_monkey阅读 5,225评论 0 7
  • 正则表达式到底是什么东西?字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等...
    狮子挽歌阅读 6,469评论 0 9
  • 只能输入数字:"^[0-9]*$"。 只能输入n位的数字:"^\d{n}$"。 只能输入至少n位的数字:"^\d{...
    johney_zhou阅读 3,089评论 0 1
  • 仿若去年 秋天 明朗 季节的写生笔笔入怀 轻衣素裹 等待你的时间似水 穿流入隙 当叶子红透了黄昏 你的脸颊如初 没...
    楼上那个男人阅读 1,124评论 0 0
  • 最近在忙着搬进搬出,仓库里塞满了各种囤货,客厅里堆的比仓库还满。 破家值万贯,一眼望去个个都是心头好,每个都有它存...
    悬崖上的小树阅读 3,114评论 4 5