首页 > 其他分享 >使用js写一个方法计算字符串的长度,英文算半个

使用js写一个方法计算字符串的长度,英文算半个

时间:2025-01-04 10:26:56浏览次数:1  
标签:字符 英文 32 js str 字符串 长度

在前端开发中,如果你想要计算字符串的长度,并且希望英文字符算作半个长度,你可以使用JavaScript编写一个函数来实现这个功能。下面是一个示例函数,它遍历字符串中的每个字符,检查字符是否为英文字符(这里假设英文字符是指ASCII码在32到126之间的字符,包括空格),并据此计算长度:

function calculateStringLength(str) {
  let length = 0;
  for (let i = 0; i < str.length; i++) {
    const charCode = str.charCodeAt(i);
    // 假设英文字符的ASCII码范围是32到126
    if (charCode >= 32 && charCode <= 126) {
      length += 0.5; // 英文字符算作半个长度
    } else {
      length += 1; // 其他字符算作一个长度
    }
  }
  return length;
}

// 示例用法
const string1 = "Hello, World!"; // 包含英文字符和其他字符
const string2 = "你好,世界!"; // 只包含其他字符

console.log(calculateStringLength(string1)); // 输出: 10.5
console.log(calculateStringLength(string2)); // 输出: 6

这个函数calculateStringLength接受一个字符串参数str,并遍历字符串中的每个字符。对于每个字符,它使用charCodeAt方法获取字符的ASCII码,然后检查该码是否在32到126的范围内。如果是,就将长度增加0.5;否则,将长度增加1。最后,函数返回计算得到的长度。

请注意,这个函数是基于ASCII码来判断英文字符的,因此它可能不适用于所有情况。例如,它不会将带有重音的拉丁字母(如é、è、ê等)视为英文字符。如果你需要更精细的控制,你可能需要使用更复杂的逻辑来判断哪些字符应该算作半个长度。

标签:字符,英文,32,js,str,字符串,长度
From: https://www.cnblogs.com/ai888/p/18651559

相关文章

  • js的方法sort默认是按什么方式排序的?
    在JavaScript中,Array.prototype.sort()方法用于对数组的元素进行排序。然而,sort()方法的默认排序方式并不是纯数字排序,而是将数组元素转换为字符串,然后基于字符的Unicode码点进行排序。这意味着,如果你有一个数字数组并直接使用sort()方法,你可能会得到非预期的结果。例如:cons......
  • 使用js写一个方法判断数组是否为等差数组
    等差数组是指数组中任意两个相邻元素的差值都相等的数组。下面是一个使用JavaScript编写的函数,该函数可以判断一个数组是否为等差数组:functionisArithmeticArray(arr){if(arr.length<2){//如果数组长度小于2,那么它不能被视为等差数组returnfalse;......
  • 使用js实现保留两位小数的方法有哪些?
    在JavaScript中,你可以通过多种方式实现保留两位小数。以下是一些常见的方法:toFixed()方法toFixed()是JavaScript的Number对象的一个方法,它可以将数字格式化为指定小数位数的字符串。letnum=123.456;letresult=num.toFixed(2);//"123.46"注意,toFixed()方法......
  • FJSP:部落竞争与成员合作算法(Competition of tribes and cooperation of members ,CTCM)
    一、柔性作业车间调度问题柔性作业车间调度问题(FlexibleJobShopSchedulingProblem,FJSP),是一种经典的组合优化问题。在FJSP问题中,有多个作业需要在多个机器上进行加工,每个作业由一系列工序组成,每个工序需要在特定的机器上完成。同时,每个机器一次只能处理一个工序,且每个工......
  • (免费源码)计算机毕业设计必学必看 万套实战教程 java、python、php、node.js、c#、APP
    摘 要本论文主要论述了如何使用SSM框架开发一个网络课程系统,将严格按照软件开发流程进行各个阶段的工作,采用B/S架构Java技术,面向对象编程思想进行项目开发。在引言中,将论述网络课程系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分析......
  • (免费源码)计算机毕业设计必学必看 万套实战教程 java、python、php、node.js、c#、APP
    摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设健康饮食推荐系统。本设计主要实现集人性化、高效率、便捷等优点于一身的健康饮......
  • C++中的字符( char )、字符数组( char[] )、字符串( std::string )
    字符(char)定义:char是C++中的基本数据类型,用于表示单个字符。char在内存中通常占用一个字节(8位)。在ASCII编码系统中,每个字符都对应一个唯一的整数值,char类型可以存储这些值来表示相应的字符。charch='A';//存储字符'A'与其他类型的联系:字符本质上是一个小整数类......
  • 【论文投稿】解锁Vue.js组件开发的神奇密码
    目录一、引言:Vue.js组件化的魅力之源二、初窥门径:组件的基础架构(一)组件的构成要素(二)创建首个Vue组件实例三、进阶之路:组件通信的艺术(一)父子组件间的通信之道(二)兄弟组件与跨层级通信的谋略四、实战演练:打造Vue.js组件库(一)规划组件库架构(二)开发实用组件五、总......
  • 【华为OD-E卷 - 组合出合法最小数 100分(python、java、c++、js、c)】
    【华为OD-E卷-组合出合法最小数100分(python、java、c++、js、c)】题目给一个数组,数组里面哦都是代表非负整数的字符串,将数组里所有的数值排列组合拼接起来组成一个数字,输出拼接成的最小的数字输入描述一个数组,数组不为空,数组里面都是代表非负整数的字符串,可以是0开头,......
  • JSON -2024/11/2
    JSON本质就是一个字符串JSON串的键要求必须使用双引号括起来,而值根据要表示的类型确定导入依赖<!--https://mvnrepository.com/artifact/taglibs/standard--><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId>......