【问题标题】:Highlight ping if the user is in the chatroom, Javascript如果用户在聊天室中,则突出显示 ping,Javascript
【发布时间】:2023-03-28 05:49:01
【问题描述】:

我希望它仅在用户在聊天室时突出显示 ping (@test)。如果不是,请不要突出显示。现在我有:

function highlight(message){
    return message.replace(/@\b([A-Za-z0-9]+)\b/g, '<span class="name-color">@$1</span>');
};

Project Source Code - 第 150 行

【问题讨论】:

  • 你需要编写代码来做到这一点;你试过什么?
  • 这是在客户端,在浏览器中吗?我是否理解正确,对于每个用户,您只想突出显示包含其用户名的聊天消息?
  • 如果你想得到答案,请将代码的相关部分放在你的问题中,提供更多关于你在做什么的细节,并描述你尝试过的东西。不太可能有人会想努力转到外部链接并查看超过 150 行代码,因此您应该首先付出一些努力。

标签: javascript html


【解决方案1】:

您可以做的是在客户端和服务器上保留一个用户名列表(提供给正在连接的新客户端),然后检查该用户名是否在该列表中,如果是,则突出显示 ping。

我得到的代码是:

function highlight(message){
    if(message == "") {
        return message
    }
    let mentions = message.match(/@\b([A-Za-z0-9]+)\b/g)
    if (mentions === null) { return message }
    for (i = 0; i < mentions.length; i++) {
        let mention = mentions[i].substring(1)
        if(sesskx.has(mention)) {
            message = message.replace(mentions[i], `<span class="name-color">@${mention}</span>`)
        }
    }
    return message
 };

说明:

  1. 它接收消息,并找到所有提及
  2. 它遍历所有提及
  3. 如果提及在当前用户中,则会突出显示它

编辑:repl 链接:https://repl.it/@Codemonkey51/Froggy-Chatroom

【讨论】:

  • 你弄明白了吗?
  • 它不工作,它说:Cannot read property 'length' of null
  • 已修复(至少我认为)
  • 阅读我的上一条评论,你几乎明白了,尝试修复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
  • 2015-12-26
  • 2016-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
相关资源
最近更新 更多