Scarlet D.
Scarlet D.

Reputation: 173

Code about replacing certain words in discord.js

I was trying to make the bot replace multiple words in one sentence with another word.

ex: User will say "Today is a great day" and the bot shall answer "Today is a bad night"

the words "great" and "day" were replaced by the words "bad" and "night" in this example.

I've been searching in order to find a similar code, but unfortunately all I could find is "word-blacklisting" scripts.

//I tried to do some coding with it but I am not an expert with node.js the code is written really badly. It's not even worth showing really.

The user will say some sentence and the bot will recognize some predetermined words on the sentence and will replace those words with other words I'll decide in the script

Upvotes: 0

Views: 5025

Answers (1)

slothiful
slothiful

Reputation: 5623

We can use String.replace() combined with Regular Expressions to match and replace single words of your choosing.

Consider this example:

function antonyms(string) {
  return string
    .replace(/(?<![A-Z])terrible(?![A-Z])/gi, 'great')
    .replace(/(?<![A-Z])today(?![A-Z])/gi, 'tonight')
    .replace(/(?<![A-Z])day(?![A-Z])/gi, 'night');
}

const original = 'Today is a tErRiBlE day.';
console.log(original);

const altered = antonyms(original);
console.log(altered);

const testStr = 'Daylight is approaching.'; // Note that this contains 'day' *within* a word.
const testRes = antonyms(testStr); // The lookarounds in the regex prevent replacement.
console.log(testRes); // If this isn't the desired behavior, you can remove them.

Upvotes: 2

Related Questions