javascript – JS, das eval zum Erstellen der Ersetzungsfunktion verwendet, ist ungültig
phpcn_u1582
phpcn_u1582 2017-07-05 10:47:23
0
1
789

Codebedeutung: Erstellen Sie einen einfachen GADERYPOLUKI-Decoder

Der GADERYPOLUKI ist ein einfacher Ersatzschlüssel, der beim Scouting zum Verschlüsseln von Nachrichten verwendet wird. Die Verschlüsselung basiert auf einem kurzen, leicht zu merkenden Schlüssel. Der Schlüssel wird als gepaarte Buchstaben geschrieben, die im einfachen Ersatzschlüssel enthalten sind

Beispiel:

encode("ABCD", "agedyropulik"); // => GBCE

Der Code lautet wie folgt. Ich möchte die Funktion eval verwenden, um eine Funktion zu erstellen, die Zeichen ersetzen kann, aber sie scheint nutzlos zu sein.

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_u1582
phpcn_u1582

Antworte allen (1)
扔个三星炸死你

replace 不会改变原有值,而是返回新串。

其实你可以用new RegExp(a, 'g')就不需要 eval

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!