JS计算字符串的字节数(十五)

简介: JS计算字符串的字节数(十五)

一. 字节数


字符串中的字节数,单个的字符,包括英文字符,数字,特殊字符等是一个字节,中文的汉字是两个字节。 求一个字符串的字节数,可以简化成判断某个字符是单个的字符,还是中文的字符。 但是,却比这一个高级一些。


英文的字符串的字节数与字符串的长度是一致的,但是中文的字符串的字节数与字符串的长度是不一样的。


常用于,用于检测 描述等长字符串是否超过了指定的长度。


二. 循环字符,判断是否是中文字符的方式


/*计算输入的字节*/
function strlen(str){
    var len = 0;
    for (var i=0; i<str.length; i++) { 
      // 取出单个字符
      var c = str.charCodeAt(i); 
      //单字节加1 ,0~9,a~z
      if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
        len++;
      }else {
        len+=2;
      }
    }
    return len;
}


三. 正则表达式替换


将是中文的部分,替换成两个普通的字符,这样字节就全部都是普通的字节了,此时字节的长度就是字符串的长度。


  function getBytesLength(str) {
    // 在GBK编码里,除了ASCII字符,其它都占两个字符宽
    return str.replace(/[^\x00-\xff]/g, 'xx').length;
  }


谢谢!!!

相关文章
|
1月前
|
JavaScript 前端开发
JavaScript随手笔记 --- 用正则表达式匹配字符串是否为运算公式
JavaScript随手笔记 --- 用正则表达式匹配字符串是否为运算公式
|
1月前
|
JavaScript 前端开发
js字符串替换
js字符串替换
16 2
|
17天前
|
JavaScript 算法
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
原生JS完成“一对一、一对多”矩形DIV碰撞检测、碰撞检查,通过计算接触面积(重叠覆盖面积)大小来判断接触对象DOM
|
17天前
|
JavaScript 前端开发 大数据
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
数字太大了,计算加法、减法会报错,结果不正确?怎么办?用JavaScript实现大数据(超过20位的数字)相加减运算。
|
14天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
|
1月前
|
JavaScript 前端开发 索引
JavaScript字符串检查:从基础到高级
【2月更文挑战第26天】
24 0
JavaScript字符串检查:从基础到高级
|
7天前
|
JavaScript 前端开发
js字符串拼接
js字符串拼接
|
14天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`&#39;1.2,2,3,4,5&#39;`)转换为对象数组。通过使用`split(&#39;,&#39;)`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
17天前
|
JavaScript
JS去除字符串的方法
JS去除字符串的方法
|
21天前
|
JavaScript 前端开发
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
10 0