【问题标题】:Discord.js command check empty space only onceDiscord.js 命令只检查一次空白空间
【发布时间】:2021-07-06 17:40:50
【问题描述】:

当有人输入命令 !add James Bond;Michael B Jordan 时,参数会将其视为“James”args[0]、“Bond;Michale”args[1]、“B”args[2]、“Jordan”args[3]。无论如何我都可以做到,它只计算“!add”之后的空白空间,然后使用“;”分割?.最终答案是“James Bond”args[0]、“Michael B Jordan”args[1]。

client.on('message',async(message)=>{

if(!message.content.startsWith(prefix2)||message.author.bot)return;
const args2=message.content.slice(prefix.length).trim().split(/ +/);
const command= args2.shift().toLowerCase();

这是我尝试过的,但它似乎不起作用


if(!message.content.startsWith(prefix2)||message.author.bot)return;
const args2=message.content.slice(prefix.length).trim().split(/ {1}[;]+/);
const command= args2.shift().toLowerCase();

谢谢

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    由于我们知道!add 将始终占用字符串的 5 个字符,我们可以使用 String.prototype.slice() 裁剪出这 5 个字符。 然后这将返回'James Bond;Michael B Jordan',我们当然可以将其除以;,以返回其自己的数组元素中的每个名称。

    client.on('message', async(message) => {
       // message.content = '!add James Bond;Michael B Jordan'
       const rawContent = message.content.slice(5);
       const celebrityArguments = rawContent.split(';');
    
       console.log(celebrityArguments);
       // ["James Bond", "Michael B Jordan"]
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-12
      • 1970-01-01
      • 2013-10-30
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 2019-03-14
      相关资源
      最近更新 更多