gpt4 book ai didi

javascript - 用其他单词替换消息中的多个单词?

转载 作者:行者123 更新时间:2023-12-02 22:59:53 25 4
gpt4 key购买 nike

我正在尝试让我的 Discord 机器人将消息中的各个单词替换为其他单词,但我似乎不知道如何针对超过 1 个单词执行此操作。

举个例子:

我想将 '!say' 替换为空

我想用“食人魔”替换“美洲驼”

我想用“johnny”替换“john”

所以,我希望机器人将这些单词替换为其他单词。但我只能通过进行一次替换来解决这个问题,否则它会重复该消息,并且每次都会进行不同的更改。

这是我目前获得的代码

client.on("message", message => {
if (message.content.startsWith("!say")) {
message.channel.sendMessage("I say: " + message.content.replace('!say ','' + '\n'))
};
});

有人知道怎么做吗?抱歉,如果这太令人困惑了:(

最佳答案

我会创建一个对象,其键是您要替换的单词,其值是它们的替换值。然后,您可以通过将所有键连接在一起来构造正则表达式,并使用替换函数在对象上查找适当的替换值:

const replacements = {
'!say': '',
llama: 'ogre',
john: 'johnny'
};
const pattern = new RegExp(Object.keys(replacements).join('|'), 'g');
client.on("message", message => {
const replacedText = message.content.replace(pattern, key => replacements[key]);
// use replacedText
});

const replacements = {
'!say': '',
llama: 'ogre',
john: 'johnny'
};
const pattern = new RegExp(Object.keys(replacements).join('|'), 'g');

const input = '!say foo bar llama baz john buzz';
const replacedText = input.replace(pattern, key => replacements[key]);
console.log(replacedText);

关于javascript - 用其他单词替换消息中的多个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57831855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com