如何在javascript中计算带有表情符号的字符串的正确长度?

7 浏览
0 Comments

如何在javascript中计算带有表情符号的字符串的正确长度?

我有一个小问题。

我正在使用NodeJS作为后端。现在,用户有一个字段"biography",用户可以在这个字段中写一些关于自己的东西。

假设这个字段的最大长度是220,假设输入如下:


如你所见,这里没有220个表情符号(只有37个表情符号),但是如果我在我的NodeJS服务器中执行:

console.log(bio.length)

其中bio是输入的文本,我得到的结果是221。我应该如何“解析”字符串输入以获取正确的长度?这是一个关于Unicode的问题吗?

问题已解决

我使用了这个库:https://github.com/orling/grapheme-splitter

我尝试了这样的代码:

var Grapheme = require('grapheme-splitter');
var splitter = new Grapheme();
console.log(splitter.splitGraphemes(bio).length);

这样得到的长度是37。它工作得非常好!

0