【问题标题】:How to replace other thing to custom words如何将其他内容替换为自定义单词
【发布时间】:2020-04-01 12:39:17
【问题描述】:

我正在为 Discord 创建一个欢迎/再见消息插件。我添加了自定义词,但它不适用于事件。

这是我的代码:

client.on ('guildMemberAdd', Member => {

  const Database = JSON.parse (fs.readFileSync ('./Bot/Database/Welcome-Bye.json'))
  const customMessage = Database [Member.guild.id].Message
  const Message = new RichEmbed ()
  .setColor (0x00ff00)

  if (customMessage) {
    if (customMessage.includes ('-membertag-')) customMessage.replace ('-membertag-', Member.user.tag)
  }

})

不是发送成员标签,而是再次发送“-membertag-”。我该如何解决这个问题?

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    String.prototype.replace() 返回一个替换内容的字符串。它不直接修改字符串。

    如果你想保留那个字符串的值,你必须重新赋值。

    if (customMessage.includes('-membertag-'))
         // assign the new value back to customMessage
         customMessage = customMessage.replace('-membertag-', Member.user.tag);
    

    如果要更改-member-tag- 的所有实例,可以使用正则表达式。

    if (customMessage.includes('-membertag-'))
         // find all instances of `-member-tag-` (case insensitive) and replace
         customMessage = customMessage.replace(/-membertag-/gi, Member.user.tag);
    

    【讨论】:

    • 他也可以使用js split/join模式。基本上围绕 -membertag- 字符串拆分字符串,然后使用 Member.user.tag 加入数组。这样做的好处是替换所有实例,而不仅仅是第一个。
    • 或者可能只是使用正则表达式,因为它不会偏离replace 函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2019-05-10
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多