小编Sta*_*edo的帖子

如何用JavaScript中的表情符号计算字符串的正确长度?

我有点问题

我正在使用NodeJS作为后端。现在,用户拥有一个“传记”字段,用户可以在其中写一些关于他自己的东西。

假设此字段的最大长度为220,并将其作为输入:

???????????????????????????????????????? 
Run Code Online (Sandbox Code Playgroud)

如您所见,没有220个表情符号(有37个表情符号),但是如果我在nodejs服务器中这样做

console.log(bio.length)
Run Code Online (Sandbox Code Playgroud)

输入文本在何处,我得到221。如何“解析”字符串输入以获得正确的长度?关于Unicode是否有问题?

解决了

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

我尝试过:

var Grapheme = require('grapheme-splitter');
var splitter = new Grapheme();
console.log(splitter.splitGraphemes(bio).length);
Run Code Online (Sandbox Code Playgroud)

长度为37。效果很好!

javascript node.js emoji

5
推荐指数
3
解决办法
1849
查看次数

如何从 ReactJS 中的 addEventListener 调用函数?

我正在 ReactJS 中进行无限滚动,但我遇到了麻烦!

在我的组件加载后,我这样做:

componentDidMount() {
    window.addEventListener('scroll', function() {
        var h = this.innerHeight;
        var j = document.documentElement.scrollHeight;
        var k = document.documentElement.scrollTop;
        if ((h + k) >= j - 150) {
            loadPhotos();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

而且,作为一种魔法,我“未定义 loadPhotos()”。我不能使用 this.loadPhotos() 因为它指的是窗口(没有 loadPhotos())。

我在 constructor() 方法中初始化我的 loadPhotos():

this.loadPhotos = this.loadPhotos.bind(this);
Run Code Online (Sandbox Code Playgroud)

我的 loadPhotos() 是在 constructor() 方法之外定义的,我的意思是在类体中定义。

有人可以帮助我吗?谢谢你们!

解决方案

componentDidMount() {
    window.addEventListener('scroll', () => { // arrow boys
        var h = window.innerHeight;
        var j = document.documentElement.scrollHeight;
        var k = document.documentElement.scrollTop;
        if ((h + k) >= j …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

3
推荐指数
1
解决办法
1664
查看次数

instagram 中的 query_hash 是什么?

我第一次在 graphql 上工作,我看到 Instagram 对他们的查询进行了哈希处理。

我搜索了一些东西,但我不知道它是否正确。哈希就像存储在缓存中的持久查询?

还是我错了?

示例:这是我的请求负载

{
 "operationName":"user",
 "variables":{},
 "query":"query user {\n  users {\n    username\n    createdAt\n    _id\n  }\n}\n"
}
Run Code Online (Sandbox Code Playgroud)

这是 Instagram:

 query_hash: 60b755363b5c230111347a7a4e242001
 variables: %7B%22only_stories%22%3Atrue%7D
Run Code Online (Sandbox Code Playgroud)

(它处于 urlencode 模式)。

现在,我如何散列我的查询?我使用 NodeJS 作为后端,将 js 作为前端。我想了解它是如何工作的 x)!谢谢你们!

graphql

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

javascript ×2

emoji ×1

graphql ×1

node.js ×1

reactjs ×1