首页 > 其他分享 >JS获取字符串长度的常用方法,汉字算两个字节

JS获取字符串长度的常用方法,汉字算两个字节

时间:2023-01-04 18:46:22浏览次数:35  
标签:function 字节 GetLength JS var str 字符串

JS获取字符串实际长度(双字节字符、汉字算两个字符)

//第一种
GetLength = function(str) 
{
    var realLength = 0;
    for (var i = 0; i < str.length; i++) 
    {
        charCode = str.charCodeAt(i);
        if (charCode >= 0 && charCode <= 128) 
		realLength += 1;
        else 
		realLength += 2;
    }
    return realLength;
}
//第二种
GetLength = function(s) 
{
	var len = 0;
	for(var i=0; i<s.length; i++) 
	{
		var c = s.substr(i,1);
		var ts = escape(c);
		if(ts.substring(0,2) == "%u") 
		{
			len+=2;
		} else 
		{
			len+=1;
		}
	}
	return len;
}

第三种:使用字符unicode判断:

GetLength = function(str) 
{
    var l = str.length;
    var blen = 0;
    for(i=0; i<l; i++) {
        if ((str.charCodeAt(i) & 0xff00) != 0) {
            blen ++;
        }
        blen ++;
    }
}; 

第四种,更简洁的

//第四种(采取将双字节字符替换成"aa"的做法,取长度)
GetLength = function(str) 
{
    return str.replace(/[^\x00-\xff]/g,"aa").length;
}; 

标签:function,字节,GetLength,JS,var,str,字符串
From: https://www.cnblogs.com/xiongzaiqiren/p/17025723.html

相关文章

  • 从零开始学node.js笔记 03
    一、模块的加载机制1、优先从缓存中加载模块在第一次加载后会被缓存,这也意味着多次调用require()不会导致模块的代码被执行多次。注意:不论是内置模块、用户自定义模块、还是......
  • 《安富莱嵌入式周报》第291期:分分钟设计数字芯片,单片机版JS,神经网络DSP,microPLC,FatFS
     视频版:​​​https://www.bilibili.com/video/BV1Dd4y1b74x​​1、英飞凌推出双核M7+M0芯片XMC7000,8MBFlash,1MBRAM,2.7-5.5宽电压,10个CANFD,20通道LIN-UART,96通道12bitA......
  • 深入浅出简单JS加密解密案例
    加密是指使用密钥将明文(未加密的信息)转换为密文(无法被读取的信息)的过程。解密则是指使用相同的密钥将密文转换回明文的过程。JavaScript提供了一种内置的加密方法,称为​​......
  • JSR303校验 在实体类上的应用
    首先在实体类上添加注解@Validated在需要校验的字段上添加需要的注解可能出现的错误导入对应依赖可以解决<dependency><groupId>org.hibernate</groupId><ar......
  • mock.js模拟数据
    1.npm install mockjs2.在src目录下创建个mock文件夹3.mock文件夹下准备json数据(json数据必须格式化,不能留有空格)json需要的图片资源放在public文件夹下,会随dist打包原......
  • js 日期格式化
    1.给Date对象添加format方法,date类型的对象即可使用格式化方法(注意需要引入main.js中)Date.prototype.format=function(fmt){leto={"M+":this.getMonth(......
  • JS逆向实战10——某集团RSA长加密
    由于本网站较为特殊目标网站加密与其他稍有不同目标网站:68747470733a2f2f65632e6d696e6d6574616c732e636f6d2e636e2f6f70656e2f686f6d652f70757263686173652d696e666f2f......
  • JS 七彩文字
    背景:作者身为一个经历过杀马特时代的90后,怎么能拒绝七彩梦幻灯光呢,手撸一个七彩文字控制器 效果:(文字颜色是会不停变化的)代码: <!DOCTYPEhtml><htmllang="en......
  • Java 中文字符串编码之GBK转UTF-8
    写过两篇关于编码的文章了,以为自己比较了解编码了呢?!结果今天又结结实实的上了一课。以前转来转去解决的问题终归还是简单的情形。即iso-8859-1转utf-8,或者iso-8859-1转gb......
  • 2023年实时最新中国省市区县街道级geoJSON格式地图数据Echarts地图数据联动数据下载
    发现个可以免费下载全国 geojson 数据的网站,推荐一下。支持全国、省级、市级、区/县级、街道/乡镇级以及各级的联动数据geojson数据下载地址:https://geojson.hxkj.vip......