Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

156
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda