提问者:小点点

如何在discord.js中修改或删除URL中的少数字符


我有一个小问题,试着解决,但没有用。 我正在使用discord.js向频道发送消息。 它的工作很好,除了URL部分,一些URL有尾随[1],以供参考。 http...xyz.com/something/[1]这样。 我也尝试了下面的替换方法,它在fiddle中工作,但在我的代码中实现时没有。

替换方法

let string = 'https://www.tradingview.com/x/0Mf3zuVw/[1]'; // just an example
let result = string.replace('[1]', '');
console.log(result);

我这里的代码,我认为在ProxyUrl中必须做一些更改

const channel = client.channels.get(message.channel.id)
let content = `**${message.channel.parent.name}**\n${channel.name}\n${message.content}`  
message.attachments.forEach(attachment => {
content += `\n ${attachment.ProxyUrl} `  
})

因此,似乎必须围绕ProxyUrl做一些事情,如字符串替换等。让我知道我应该做什么更改。 再次感谢


共1个答案

匿名用户

假设您发布的替换逻辑是正确的,您可以按照如下方式将其应用于每个附件的proxyURL:

message.attachments.forEach(attachment => {
    content += `\n ${attachment.ProxyUrl.replace('[1]', '')}`; 
})

如果url中包含多个[1],则可以使用以下命令删除所有这些[1]:

message.attachments.forEach(attachment => {
    content += `\n ${attachment.ProxyUrl.replace(/\[1\]/g, '')}`; 
})

如果message.content已经包含[1],则需要执行以下操作

content=content.replace(/\[1\]/g,'');

在最后。