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

296
Vistas
No se pueden obtener ciertas palabras del archivo de texto.

Hola, quiero obtener ciertas palabras de un archivo de texto en lugar de todas las palabras del archivo. Básicamente, este archivo de texto tiene ciertas palabras que quiero eliminar si se usan en un mensaje.

Entonces quiero enviar estas palabras en un nuevo mensaje:

Cómo esto no funciona para mí, solo está enviando todas las palabras ${word} en el archivo de texto.

Esto es con lo que estoy trabajando

 const badwords = fs.readFileSync("./badwords.txt","utf8").toLowerCase().split("\r\n"); const blocked = badwords.filter(word => message.content.toLowerCase().includes(word)); //filter through badwords blocked.filter(word => { if(message.content.includes(word)){ message.delete() log_channel.send(`Message deleted because it contained the words ${word}`) } })

Devolver valores de badword.txt test1 y test2

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Su error proviene de cómo detecta si se encontraron badwords en message.content . blocked ya es una matriz de malas palabras encontradas (por eso todas regresan cuando las vuelve a filtrar con la misma condición), todo lo que necesita hacer es verificar si tiene una length mayor que 0. Para enviar una lista de las malas palabras encontradas toma la matriz y join en una cadena

 const badwords = fs.readFileSync("./badwords.txt","utf8").toLowerCase().split("\r\n"); const blocked = badwords.filter(word => message.content.toLowerCase().includes(word)); if (blocked.length) { message.delete() log_channel.send(`Message deleted because it contained the words ${blocked.join(' ')}`) }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Asumiendo que tienes la siguiente estructura badwords.txt

 ... bad1 bad2 bad3 ...

Necesitas dividirlos por nueva línea

 const badwords = fs.readFileSync("./badwords.txt","utf8").toLowerCase().split("\n");

Luego, debe encontrar todas las palabras en el mensaje y convertirlas en una matriz

 const message = "String with-one bad1 word, bad2, bad1".match(/\b[\w\-]+\b/gi);

Y luego solo filtre el mensaje y devuelva un nuevo mensaje

 const filteredMessage = message.filter(word => { if(badwords.includes(word)) { log_channel.send(`Message deleted because it contained the words ${word}`) return false; } return true; }).join(' ');
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