if (userResponseField.value.toUpperCase().includes('MY NAME IS ') === true || userResponseField.value.toUpperCase().includes('MY NAME\'S ') === true) { What I am basically trying to do is create some sort of chatbot and it's working perfectly, it's just that it gets confused by extra whitespaces. How can I remove them during the condition check? I've looked for answers but none of them worked with the condition, they are still correct though, just not working with the way I want to do this whole thing. Note: I don't want the condition to make changes to the string/variable itself.
4 Réponses :
Salut! J'ai déjà essayé la garniture (). Malheureusement, ça ne fait pas ce que je veux. Merci quand même!
@Plamendobrev CARD code> ne mute pas votre chaîne d'origine
Ce que je voulais dire, c'est que le bot est toujours confus par ces espaces blancs supplémentaires.
Vous pouvez utiliser p> string.prototype.trim () code> sur la valeur et la chaîne codée dur:
var userResponseField = {};
userResponseField.value = 'MY NAME IS';
if (userResponseField.value.toUpperCase().trim().includes('MY NAME IS '.trim()) === true || userResponseField.value.toUpperCase().trim().includes('MY NAME\'S '.trim()) === true) {
console.log("true");
}
Salut! J'ai déjà essayé la garniture (). Malheureusement, ça ne fait pas ce que je veux. Merci quand même!
@Plamendobrev l'avez-vous utilisé sur les deux comparaisons?
Oui je l'ai fait. Même essayé de répondre (le bot) dans les deux sens. Cela n'a pas fonctionné. J'apprécie toujours l'aide.
Vous pouvez utiliser regex:
p> si (Userresponsefield.value.match (/ My \ S + Nom (\ S + i |) S / GI)) Code> P> Ceci renvoie true pour les entrées telles que
'mon nom est' code>. p>
let predicate = str => !!str.match(/my\s+name(\s+i|')s/gi);
[
'my NaME iS ',
'my NaME\'s',
'my name s',
'my ame is',
'my nameis',
].forEach(input => console.log(input, ':', predicate(input)));
Cela ne fonctionne pas comme ça devrait être. J'ai aussi essayé Regex mais cela n'a pas fait le travail.
C'est super. Vous aurez besoin de fournir plus de détails si vous êtes intéressé par l'aide?
C'est moi encore moi.
J'ai trouvé une façon intelligente de faire cela et si certains d'entre vous, à l'avenir, ont ce problème et je viens de trouver ce fil, voici comment j'ai résolu mon problème: depuis ce code , avec la condition que j'ai affiché ci-dessus sont stockées dans une fonction, le par exemple: p> ignorer le J'espère avoir été utile à tous ceux qui recherchent un solution à ce problème. p> p> userseresponsefieldoutputt code> est ce que je vais utiliser pour la sortie des messages de l'utilisateur dans la chatbox. Il reste non édité, tandis que le
userseresponsefield.value code> a ses espaces supprimés. P>
Nom d'utilisateur code> variable, il fait partie du code qui ne doit pas être affiché maintenant. C'est une autre fonction que j'ai faite, la première valeur est ce qui apparaît dans la discussion sur le côté droit, où les réponses de l'utilisateur sont affichées. La chaîne et la variable après la virgule sont ce qui apparaît sur le côté gauche de la conversation, où les messages du chatbot sont affichés. Mais comme vous pouvez le constater, je n'utilise pas
userseresponsefield.value code>. Au lieu de cela, j'utilise
userseresponsefieldoutput code>, qui imprimera la sortie de l'utilisateur sans les espaces blancs supplémentaires enlevés. P>
Ne travaillez tout simplement pas avec la façon dont je veux faire tout ce genre de choses i> <= Soyez clair sur la façon dont vous voulez tout ce qui est alors;)