JS获取字符串实际长度(包含汉字)的简单方法

要获取字符串实际长度(包含汉字),必须考虑到汉字所占的长度和编码,下面详细介绍一下获取字符串实际长度的方法。

方法一:使用正则表达式和charCodeAt()方法计算汉字转义编码长度

该方法使用正则表达式以及charCodeAt()方法来获取字符串的实际长度,步骤如下:

  1. 定义一个字符串变量,比如str,用于存储待处理的字符串。
  2. 初始化2个计数器,cbis:字符宽度,count:字符串总长度。
  3. 创建一个循环,遍历字符串的每一个字符,计算字符的宽度, 如果是汉字,宽度为2,其它字符宽度为1。
  4. 将每个字符的宽度累加到cbis计数器中,并计算出当前字符串的实际长度。
  5. 返回字符串的实际长度值。

示例代码如下:

function getRealLength(str) {
    var cbis = 0;
    var count = 0;
    for (var i = 0, len = str.length; i < len; i++) {
        var chr = str.charAt(i);
        var width = /[\u0391-\uFFE5]/.test(chr) ? 2 : 1;//使用正则表达式匹配汉字和其他字符
        cbis += width;
        count += 1;
    }
    return count + (cbis - count) / 2; //根据字符宽度计算实际长度
}

//测试代码:
var str1 = "hello world";
var str2 = "你好,世界!";
console.log(getRealLength(str1)); // 11
console.log(getRealLength(str2)); // 10.5

方法二:使用ES6中的Array.from()方法和for...of循环遍历字符串并计算长度

该方法使用ES6新特性Array.from()方法和for...of循环遍历字符串并计算长度,步骤如下:

  1. 定义一个字符串变量,比如str,用于存储待处理的字符串。
  2. 将字符串转换为一个数组,并使用for...of循环遍历数组,计算宽度并统计字符串的总长度。
  3. 返回字符串的实际长度值。

示例代码如下:

function getRealLength(str) {
    var count = 0;
    for (let ch of Array.from(str)) { //使用ES6的Array.from()方法和for...of语句遍历字符串
        var width = /[\u0391-\uFFE5]/.test(ch) ? 2 : 1; //使用正则表达式匹配汉字和其他字符
        count += width;
    }

    return count;
}

//测试代码:
var str1 = "hello world";
var str2 = "你好,世界!";
console.log(getRealLength(str1)); // 11
console.log(getRealLength(str2)); // 10

以上两种方法可以准确地获取字符串的实际长度,适用于所有包含汉字或其他非ASCII字符的字符串。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS获取字符串实际长度(包含汉字)的简单方法 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • js实现倒计时时钟的示例代码

    实现JS倒计时时钟需要用到JS的Date()对象以及setTimeout()方法,下面是完整攻略: 1. 创建一个计时器页面 创建一个HTML页面,包含一个div元素用于显示倒计时,同时在页面底部添加一个JavaScript脚本标签。其中HTML代码如下所示: <!DOCTYPE html> <html> <head> &…

    JavaScript 2023年5月27日
    00
  • JavaScript中Cookie操作实例

    JavaScript中,我们可以使用Cookie来存储一些小型的文本数据,例如用户的登录状态、用户的个性化设置等等。Cookie的使用在网站中非常普遍,具有非常重要的意义。下面是JavaScript中“Cookie操作实例”的完整攻略。 一、什么是Cookie Cookie是由服务器传给客户端的一小段信息,客户端请求后就会一起发送到服务器上。例如,我们可以使…

    JavaScript 2023年6月11日
    00
  • JavaScript不刷新实现浏览器的前进后退功能

    实现浏览器的前进后退功能,通常需要使用浏览器提供的history对象来实现。而JavaScript不刷新实现浏览器的前进后退功能,可以通过以下步骤来完成: 1. 修改URL的哈希值 改变URL哈希值(URL中#后面内容)时,浏览器不会刷新页面,因此可以通过修改哈希值来实现前进后退。具体实现步骤如下: 在URL中添加hashchange事件监听,当页面哈希值发…

    JavaScript 2023年6月11日
    00
  • JavaScript内置对象之Array的使用小结

    JavaScript内置对象之Array的使用小结: 1. 概述 JavaScript内置对象之Array是一种可以保存多个值的可变长度的列表,可以通过下标获取或修改其中的某个元素。 2. 声明数组 可以使用字面量的方式声明一个空数组和非空数组,如下所示: var arrEmpty = []; // 空数组 var arr1 = [1, 2, 3]; // …

    JavaScript 2023年5月27日
    00
  • JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)

    JS对外部文件的加载: 使用 使用XMLHttpRequest对象异步加载JS文件 function loadScript(url, callback) { var script = document.createElement(‘script’); script.type = ‘text/javascript’; if (script.readyState…

    JavaScript 2023年5月27日
    00
  • JavaScript方法和技巧大全

    JavaScript方法和技巧大全 JavaScript是现代Web开发必备的一种编程语言。在使用JavaScript进行Web开发时,我们经常会遇到各种各样的问题,如浏览器间兼容性、代码的性能优化等。本篇文章将介绍一些在日常开发中常用的JavaScript技巧和方法,帮助Web开发者更好地应对开发难题。 1. 使用对象解构进行变量赋值 对象解构可以帮助我们…

    JavaScript 2023年5月18日
    00
  • JavaScript常用工具函数汇总(浏览器环境)

    JavaScript常用工具函数汇总(浏览器环境) 摘要 在JavaScript开发中,为了节省开发时间、提高效率、降低代码复杂度,我们经常使用JavaScript工具函数。本文对JavaScript常用工具函数进行了汇总,主要包括数组、字符串、日期、数字、DOM、事件、Ajax等方面的常用工具函数。 目录 数组工具函数 字符串工具函数 日期工具函数 数字工…

    JavaScript 2023年5月18日
    00
  • asp.net中绑定TextBox回车事件的解决方法

    ASP.NET中绑定TextBox回车事件的解决方法可以分为两种: 一、使用Javascript实现 实现步骤如下: 在页面中为TextBox控件加上onkeydown事件,如下所示: <asp:TextBox ID="TextBox1" runat="server" onkeydown="if(eve…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部