So I’m creating a bot with an API and the list is pretty case sensitive and only allowing exact matches. for example there i have this word “ENCHANTED_GLISTERING_MELON”. Its all-caps, have underscores, and complicated spelling, and the site does not accept if it is not an exact match. Its is not so user-friendly. Is there any way to so that when a user input something, it will auto capitalize, replace spaces with underscores, and most importantly check for misspells then consider the closest word? I have a dictionary of what the site accepts.
It not a a simple task to disallow some words with typos.
To avoid reinventing the wheel I would recommend you to use the one of the Open Source engines like RASA to enable neural language processing with your chat.
For a words similarities you check Levenshtein Distance algorithm:
For a simple solution you can just replace your disallowed words:
Also, if it’s just a filter for a bad words in your chat you can use some existing libraries like bad-words:
And you can capitalize everything for your particular strange case:
'enchanted glistering melon'.trim().replace(/ /g,'_').toLocaleUpperCase()