recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - JS utilisant eval pour créer la fonction de remplacement n'est pas valide

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

phpcn_u1582phpcn_u15822757 Il y a quelques jours905

répondre à tous(1)je répondrai

  • 扔个三星炸死你

    扔个三星炸死你2017-07-05 10:49:23

    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

    répondre
    0
  • Annulerrépondre