在线计算字符串长度包含特殊字符、表情 代码
时间: 2023-12-08 21:03:55 浏览: 159
FIND_LEN.rar_C 字符串
可以使用 JavaScript 中的 `length` 属性来获取字符串长度,其中包含特殊字符和表情。
示例代码:
```javascript
function getLength(str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
// 判断是否为高位代理项(0xd800~0xdbff)
if (c >= 0xd800 && c <= 0xdbff) {
if (i < str.length - 1) {
var c2 = str.charCodeAt(i + 1);
// 判断是否为低位代理项(0xdc00~0xdfff)
if (c2 >= 0xdc00 && c2 <= 0xdfff) {
len += 2;
i++;
continue;
}
}
}
// 判断是否为其他特殊字符
if (c >= 0x2000 && c <= 0x2fff) {
len += 2;
} else if (c >= 0xff00 && c <= 0xffef) {
len += 2;
} else if (c >= 0x3000 && c <= 0x9fff) {
len += 2;
} else {
len++;
}
}
return len;
}
```
其中,高位代理项和低位代理项是 Unicode 字符编码中用于表示表情等特殊字符的一种方法。其他特殊字符的编码范围可以根据实际需要进行调整。
使用方法:
```javascript
var str = 'Hello, 你好!🙂';
var len = getLength(str); // 15
console.log(len);
```
该代码中,如果字符为高位代理项,则判断其后面是否有低位代理项,如果是,则把长度加 2;如果不是,则当作普通字符计算长度。如果字符为其他特殊字符,则把长度加 2;否则当作普通字符计算长度。
阅读全文