在工作中或多或少会去判断字符串的长度是多少;但是字符串其中的内容可能不是我们确定的;他有可能是中文,也有可能是英文或者数字;那么我们怎么计算才能得到真实的字符串长度呢?
先给大家展示一串字符串:
注意: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