JavaScript中如何正确的获取字符串长度

在工作中或多或少会去判断字符串的长度是多少;但是字符串其中的内容可能不是我们确定的;他有可能是中文,也有可能是英文或者数字;那么我们怎么计算才能得到真实的字符串长度呢?

先给大家展示一串字符串:

注意:str目前有16个中文汉字;我们都知道一个中文表示两个字符,也就是该字符串有32个字符;

let str = '你认为的长度和我认为的长度一直嘛';
console.log(str.length); // 16

现在我将这个字符串增加123:

注意:现在我们看到的结果是19;如果我们在其*2的话;那就是38;但是这个字符串所占字符是35个;那他就多了3个;所以这种方式是不正确的(英文也是同理占一个字符)

let str = '你认为的长度和我认为的长度一直嘛123'
console.log(str.length); // 19

参考了网上很多方法只有一个最简单:

注意:方法那么多,干嘛不选一个最简单适用的呢?都是复制粘贴,要什么自行车;一下这串代码就是将中文替换为英文,然后进行计算长度;是不是贼简单方便

replace(/[\u0391-\uFFE5]/g,"aa").length

注意:实战中使用,我们可以看到现在我们的字符长度就是35了;方便

let str = '你认为的长度和我认为的长度一直嘛123'
console.log(str.length); // 19
console.log(str.toString().replace(/[\u0391-\uFFE5]/g,"aa").length); // 35

授人以鱼不如授人以渔,方法贴这儿了;自取呦!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值