JS获取字符串长度的常用方法

温暖如初 2024-08-31 ⋅ 17 阅读

在JavaScript中,我们经常需要获取字符串的长度。在计算字符串的长度时,需要注意中文字符占用的字节数是2个,而不是1个。本文将介绍一些常用的方法来获取字符串的长度。

1. 使用length属性

JavaScript的字符串对象拥有一个length属性,可以直接获取字符串的长度。但是需要注意,该属性返回的是字符串的UTF-16编码单位数量,并不一定等于实际的字符数。

const str = 'Hello, 你好';

console.log(str.length); // 输出 12

2. 使用split()方法

通过将字符串按空字符分割成数组,然后获取数组的长度,即可得到字符串的长度。这种方式可以正确计算中文字符的长度。

function getStrLength(str) {
  return str.split('').length;
}

const str = 'Hello, 你好';

console.log(getStrLength(str)); // 输出 9

3. 使用正则表达式

通过正则表达式匹配所有的字符,然后计算匹配结果的长度,就可以得到字符串的长度。

function getStrLength(str) {
  const regex = /[^\x00-\xff]/g; // 匹配非ASCII字符
  const result = str.match(regex);

  return str.length + (result ? result.length : 0);
}

const str = 'Hello, 你好';

console.log(getStrLength(str)); // 输出 9

4. 使用charCodeAt()方法

通过遍历字符串的每个字符,并使用charCodeAt()方法获取字符的Unicode编码,可以正确计算中文字符的长度。

function getStrLength(str) {
  let length = 0;

  for (let i = 0; i < str.length; i++) {
    const unicode = str.charCodeAt(i);

    // 判断字符是否是ASCII字符
    if ((unicode >= 0 && unicode <= 127) || (unicode >= 65377 && unicode <= 65439)) {
      length++;
    } else {
      length += 2; // 非ASCII字符占用2个字节
    }
  }

  return length;
}

const str = 'Hello, 你好';

console.log(getStrLength(str)); // 输出 9

以上就是常用的获取字符串长度的方法。根据实际需求,选择适合的方式来计算字符串的长度,可以更加准确地获取到正确的结果。

希望本文能够帮助到你!


全部评论: 0

    我有话说: