在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
以上就是常用的获取字符串长度的方法。根据实际需求,选择适合的方式来计算字符串的长度,可以更加准确地获取到正确的结果。
希望本文能够帮助到你!
本文来自极简博客,作者:温暖如初,转载请注明原文链接:JS获取字符串长度的常用方法