2017-10-15 7 views
0

Après avoir appris JavaScript pendant 5 jours, j'ai écrit une fonction qui ne prend en compte que les majuscules et les minuscules. Le problème est que maintenant j'essaie de le faire fonctionner pour les phrases aussi (si l'entrée de l'utilisateur est "Cats are great", la sortie attendue est "Jhaz hyl nylha"), mais j'ai des problèmes à laisser espaces blancs intacts.La fonction de chiffrement JavaScript permet des espaces

J'ai essayé de changer /^[a-zA-Z]+$/ à /^[a-zA-Z\s]+$/ mais cela n'a pas fonctionné. PS: Oui, c'était un travail à faire, mais j'ai déjà reçu une note, car je commence tout juste à apprendre que je travaille encore pour améliorer ma fonction et apprendre plus, toute aide sera appréciée.

function cipher() { 

    do { 
     word = prompt("write a word"); 

     var output = ""; 

     if (/^[a-zA-Z]+$/.test(word)) { 
      for (var i = 0; i < word.length; i++) { 
       var character = word.charCodeAt(i); 
       var caesarCiphLow = ((character - 65 + 33) % 26 + 65); 
       var caesarCiphUpp = ((character - 97 + 33) % 26 + 97); 
       if (character >= 65 && character <= 90) { 
        output = output + String.fromCharCode(caesarCiphLow); 
       } else if (97 <= character && character <= 122) { 
        output = output + String.fromCharCode(caesarCiphUpp); 
       } 
      } 
      return prompt("Your ciphered text is", output); 
     } else { 
      alert("You must enter a word, without spaces or numbers"); 
     } 
    } while (word === "" || !/^[a-zA-Z]+$/.test(word)); 

} 
+0

Juste un heads-up: Vous n'avez pas besoin de la boucle 'do-while', vous pouvez simplement utiliser une boucle générale while et cela fonctionnera (probablement). –

Répondre

0

Il vous manque la gestion des espaces. Si vous rencontrez un espace, vous avez besoin de le remettre à la chaîne de sortie:

Les seules modifications que j'ai fait à votre code ci-dessus est:

Ajout du \s que vous avez mentionné:

if (/^[a-zA-Z\s]+$/.test(word)) { 

Ajout d'instruction else

} else if (97 <= character && character <= 122) { 
    output = output + String.fromCharCode(caesarCiphUpp); 
} 
else 
    output = output + String.fromCharCode(character); 

entrée: Les chats sont très

Sortie: Jhaz hyl nylha