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

yizhihongxing

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

方法一:使用正则表达式和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日

相关文章

  • Javascript Date setUTCHours() 方法

    以下是关于JavaScript Date对象的setUTCHours()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的setUTCHours()方法 JavaScript的setUTCHours()方法设置的UTC小时部分。该方法接受一个整数,表示要的UTC小时。如果该参数超出了JavaScript所能表示的范围,则自动调整为相应的…

    JavaScript 2023年5月11日
    00
  • javascript简单比较日期大小的方法

    下面是关于“JavaScript简单比较日期大小的方法”的完整攻略。 核心思路 在JavaScript中,我们可以先将日期转换成时间戳,在比较时间戳大小来实现比较日期的大小。具体步骤包括: 将日期转换成时间戳; 比较时间戳大小,即可得出日期的大小。 实现方法 方法一:使用Date对象 const date1 = new Date("2021-01-…

    JavaScript 2023年5月27日
    00
  • Js apply方法详解

    Javascript中apply()方法详解 Javascript中apply()方法是一种高阶函数,可以在调用函数时实现对函数作用域的绑定。apply()方法可以动态地将一个数组传递到一个函数,并使用该数组作为该函数的参数。 语法 apply()方法的语法如下所示: function.apply(thisArg, [argsArray]) thisArg:…

    JavaScript 2023年6月10日
    00
  • JavaScript函数的调用以及参数传递

    一、JavaScript函数的调用 JavaScript函数的调用可以通过三种方式进行,分别是: 1.函数直接调用 语法格式为: functionName() 示例代码: function sayHello(){ console.log(‘Hello World!’); } sayHello(); //输出:Hello World! 2.方法调用 方法调用需…

    JavaScript 2023年5月27日
    00
  • Javascript 调用 ActionScript 的简单方法

    要在 JavaScript 中调用 ActionScript,可以借助 Adobe Flash 中提供的 ExternalInterface 类,该类的作用是为 ActionScript 提供一种在 Flash Player 中嵌入 JavaScript 代码的通信桥梁,使得 JavaScript 可以调用 ActionScript 中的函数或方法。 以下是…

    JavaScript 2023年5月27日
    00
  • js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】

    当网页中所有的元素都被加载之后,我们可以使用JS中的文档就绪函数来动态改变页面内容。其中,innerHTML和innerText是两个用于改变元素内容的函数。下面详细介绍如何使用这两个函数实现动态改变页面内容的效果。 1. 文档就绪函数 JavaScript提供了两种文档就绪函数: window.onload: 当整个页面(包括图片、样式文件等)都加载完毕之…

    JavaScript 2023年6月10日
    00
  • js实现秒表计时器

    实现 js 的秒表计时器功能,可以按照以下步骤进行: 1. 创建页面结构 页面需要包含一个显示时间的区域和三个按钮,分别是“开始计时”、“暂停计时”和“重置计时”按钮。按钮可以使用 button 标签创建,显示时间的区域可以使用 div 标签创建。 下面是一个简单的页面结构示例: <div id="clock">00:00:0…

    JavaScript 2023年5月27日
    00
  • JavaScript获取当前url根目录(路径)

    获取当前网站的根目录或路径是在一些前端应用程序中非常有用的操作,特别是当需要以相对于网站根目录的方式链接样式表、脚本或图像时。以下是获取当前URL根目录(路径)的攻略: 方法一:使用location对象 可以使用JavaScript的location对象获取当前页面的完整URL,然后使用split()方法和push()方法来分离根目录路径。 var path…

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