Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

150
Visualizações
¿Cómo reemplazar letras de una lista en `config.json` para anotar usando discord.js?

Estoy agregando una modificación automática para jurar, quiero que el bot busque cualquier palabra de la lista en config.json llamada "malas palabras" y la elimine, lo cual funciona, pero si el miembro agrega "" (espacio) o " _" o algo así, omite la verificación, así que agregué .replace(//s/g,'') que funciona para el espacio, pero para el tablero y otras cosas, quería usar una lista en config.json , pero parece que no puedo hacer que el bot se ejecute a través de la lista, no hay errores, entonces, ¿cómo puedo solucionar este problema?

aquí está mi código:

 const config = require('../../config'); module.exports = async (client, message) => { if (!message.guild) return; if(!message.author.bot) { var badwords = config.badwords; var thingstoremove = config.thingstoremove; for (var i = 0; i < badwords.length; i++) { if (message.content.toLowerCase().replace(thingstoremove[8],'').includes(badwords[i])) { message.delete() message.reply("Watch your language!").then(m => m.delete({timeout: 10000})) break; } } } }

config.json:

 { "badwords": ["test1", "test2", "test3", "test4", "test5"], "thingstoremove": ["-", "_", ".", ",", "`", "~", "@", "#"] }

Gracias.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Use este simple de una sola línea para obtener la cadena completamente reemplazada

 let newStr = thingstoremove.reduce((a, c) => a.replaceAll(c, ""), message.content)

Y luego una simple verificación con esto:

 if (badwords.some(b => newStr.includes(b))) { message.delete() message.reply("Watch your language!").then(m => m.delete({ timeout: 10000 })) }
about 4 years ago · Juan Pablo Isaza Relatório

0

El problema es:

  • El código intenta reemplazar un valor indefinido del mensaje, como índice no. 8 no se encuentra en la matriz (ya que la matriz tiene 8 elementos; y los índices comienzan desde 0 (ver) , por lo que el último índice sería 7), es decir, thingstoremove[8]
  • Y también, si está tratando de eliminar todos los caracteres de su matriz, debe incluirlos en una expresión regular, si va a usar .replace , en lugar de un solo elemento.

Por lo tanto, debe crear un conjunto de caracteres de la matriz en la expresión regular para capturar cualquiera de los caracteres y reemplazarlos:

 const regex = new RegExp(`[${thingstoremove.join('')}]`, 'g')

Y luego use la expresión regular en .replace :

 if (message.content.toLowerCase().replace(regex, '').includes(badwords[i]))

Código resultante:

 const config = require('../../config'); module.exports = async (client, message) => { if (!message.guild) return; if (!message.author.bot) { var badwords = config.badwords; var thingstoremove = config.thingstoremove; const regex = new RegExp(`[${thingstoremove.join('')}]`, 'g') console.log(regex) for (var i = 0; i < badwords.length; i++) { if (message.content.toLowerCase().replace(regex, '').includes(badwords[i])) { message.delete() message.reply("Watch your language!").then(m => m.delete({timeout: 10000})) break; } } } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda