Signification du code : Construisez un simple décodeur GADERYPOLUKI
Le GADERYPOLUKI est un chiffre de substitution simple utilisé dans le scoutisme pour crypter les messages. Le cryptage est basé sur une clé courte et facile à retenir. La clé est écrite sous forme de lettres appariées, qui sont dans le chiffre de remplacement simple.
exemple :
encode("ABCD", "agedyropulik"); // => GBCE
Le code est le suivant. Je souhaite utiliser la fonction eval pour créer une fonction qui peut remplacer des caractères, mais cela semble inutile.
function decode(str,key) { key = key.split('') while (key.length>0) { let b = key.pop(), a = key.pop(); eval(`str.replace(/${a}/g, "${b}")`) eval(`str.replace(/${a.toUpperCase()}/g, "${b.toUpperCase()}")`) eval(`str.replace(/${b}/g, "${a}")`) eval(`str.replace(/${b.toUpperCase()}/g, "${a.toUpperCase()}")`) console.log(a, b, str, `str.replace(/${a}/g, "${b}")`) } return str } console.log(decode("Hmdr nge brres", "gaderypoluki")) console.log("Hmdr nge brres".replace(/g/g, "a")) >>> k i Hmdr nge brres str.replace(/k/g, "i") l u Hmdr nge brres str.replace(/l/g, "u") p o Hmdr nge brres str.replace(/p/g, "o") r y Hmdr nge brres str.replace(/r/g, "y") d e Hmdr nge brres str.replace(/d/g, "e") g a Hmdr nge brres str.replace(/g/g, "a") Hmdr nge brres Hmdr nae brres
replace ne modifie pas la valeur d'origine, mais renvoie une nouvelle chaîne.
En fait, vous pouvez utiliser
new RegExp(a, 'g')
et vous n'avez pas besoin d'eval