Javascript, zašifrování textu z Textarea

Anonym21087814.06.2010 18:07 Nahlásit
Už jsem sem psala jednou, ale nějak mi to pořád nefunguje. Pomůže mi někdo prosím? Potřebuju to opravdu nutně do školy. Neumím to prostě sestavit dohromady. Nemohl by mi to někdo napsat jak to mám být od začátku až do konce? Celé to tělo? Já jsem už vážně zoufalá a tohle je snad moje poslední šance.
Text vložený uživatelem do TEXTAREA zašifrujte do druhé TEXTAREA tak, že znaky A-Z nahradíte znaky Z-A a znaky a-z znaky z-a, ostatní znaky nechte beze změny. Teprve v okamžiku zobrazení zakodovaného textu zpřístupníte uživateli další push-button, po jehož stisknutí zašifrovaný text rozšifrujete do třetí TEXTAREA.

Odpovědi

Přidat odpověď ▾

Diskuze

tygrodlak14.06.2010 19:29 Nahlásit
<html>
<head>
<script>
function prevest () {
retezec = document.all.text1.value;
while (retezec.search("z")!=-1) {
retezec = retezec.replace("z", "#");
}
while (retezec.search("a")!=-1) {
retezec = retezec.replace("a", "z");
}
while (retezec.search("#")!=-1) {
retezec = retezec.replace("#", "a");
}
while (retezec.search("Z")!=-1) {
retezec = retezec.replace("Z", "#");
}
while (retezec.search("A")!=-1) {
retezec = retezec.replace("A", "Z");
}
while (retezec.search("#")!=-1) {
retezec = retezec.replace("#", "A");
}
document.all.text2.value = retezec;
}
function zpet () {
retezec = document.all.text2.value;
while (retezec.search("z")!=-1) {
retezec = retezec.replace("z", "#");
}
while (retezec.search("a")!=-1) {
retezec = retezec.replace("a", "z");
}
while (retezec.search("#")!=-1) {
retezec = retezec.replace("#", "a");
}
while (retezec.search("Z")!=-1) {
retezec = retezec.replace("Z", "#");
}
while (retezec.search("A")!=-1) {
retezec = retezec.replace("A", "Z");
}
while (retezec.search("#")!=-1) {
retezec = retezec.replace("#", "A");
}
document.all.text3.value = retezec;
}
</script>
</head>
<body>
<textarea name="text1">Sem vepište text, který chcete převést</textarea>
<textarea name="text2">Sem se text převede</textarea>
<textarea name="text3">Zde se objeví opět dekódovaný text</textarea>
<input type="button" onclick="prevest()" value="Převeď">
<input type="button" onclick="zpet()" value="Dekoduj">
</body>
</html>
tygrodlak14.06.2010 19:30 Nahlásit
Tak, včera sem to nenapsal uplně správně, za to se omlouvam, nedefinoval jsem řetězec na kterém se vykonávala funkce search() ... tohle funguje určitě, sám sem to ověřoval, stačí skopírovat
Anonym21087814.06.2010 20:07 Nahlásit
Vážně se omlouvám že jsem takhle otravovala, ale bylo to urgentní, ještě jednou moc děkuji.
Anonym21098115.06.2010 13:40 Nahlásit
Převádí to ale jen písmenka a,A,z,Z - ne jak je v zadání "a" až "z".
Rozepisovat to by asi nebylo vnímáno při hodnocení dobře, elegantnější by bylo pro převod používat nějaká indexovaná pole, či jak se tomu říká.
tygrodlak15.06.2010 20:37 Nahlásit
Takže jestli sem to správně pochopil teď, tak a, protože je první od začátku se nahradí za ž, protože je první od konce, á, protože je druhý od začátku se nahradí za z, protože je druhý od konce. Takže:
<html>
<head>
<script>
function prevest () {
retezec = document.all.text1.value;
novyRetezec = ""
malaPismena = "aábcčdďeéfghiíjklmnoópqrřsštťuúůvwxyýzž";
velkaPismena = "AÁBCČDĎEÉFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ";
while (retezec.length>0) {
znak = retezec.slice(0,1);
if (malaPismena.search(znak)!=-1) {
znak = malaPismena[malaPismena.length-malaPismena.search(znak)-1];
}
if (velkaPismena.search(znak)!=-1) {
znak = velkaPismena[velkaPismena.length-velkaPismena.search(znak)-1];
}
novyRetezec += znak;
retezec = retezec.slice(1, retezec.length);
}
document.all.text2.value = novyRetezec;
}
function zpet () {
retezec = document.all.text2.value;
novyRetezec = ""
malaPismena = "aábcčdďeéfghiíjklmnoópqrřsštťuúůvwxyýzž";
velkaPismena = "AÁBCČDĎEÉFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ";
while (retezec.length>0) {
znak = retezec.slice(0,1);
if (malaPismena.search(znak)!=-1) {
znak = malaPismena[malaPismena.length-malaPismena.search(znak)-1];
}
if (velkaPismena.search(znak)!=-1) {
znak = velkaPismena[velkaPismena.length-velkaPismena.search(znak)-1];
}
novyRetezec += znak;
retezec = retezec.slice(1, retezec.length);
}
document.all.text3.value = novyRetezec;
}
</script>
</head>
<body>
<textarea name="text1">Sem vepište text, který chcete převést</textarea>
<textarea name="text2">Sem se text převede</textarea>
<textarea name="text3">Zde se objeví opět dekódovaný text</textarea>
<input type="button" onclick="prevest()" value="Převeď">
<input type="button" onclick="zpet()" value="Dekoduj">
</body>
</html>

Omlouvam se, že sem napoprvé nepochopil zadání, tohle už by ti snad mohlo vyhovovat
Anonym21098116.06.2010 06:05 Nahlásit
Ještě jsem upravila:

<html>
<head>
<script>

function prevest () {
retezec = document.all.text1.value;
novyRetezec = ""
malaPismena = "aábcčdďeéfghiíjklmnoópqrřsštťuúůvwxyýzž";
velkaPismena = "AÁBCČDĎEÉFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ";
while (retezec.length>0) {
znak = retezec.slice(0,1);
if (malaPismena.search(znak)!=-1) {
znak = malaPismena.charAt(malaPismena.length-malaPismena.search(znak)-1);
}
else {
if (velkaPismena.search(znak)!=-1) {
znak = velkaPismena.charAt(velkaPismena.length-velkaPismena.search(znak)-1);
}
}
novyRetezec += znak;
retezec = retezec.slice(1, retezec.length);
}
document.all.text2.value = novyRetezec;
}

function zpet () {
retezec = document.all.text2.value;
novyRetezec = ""
malaPismena = "aábcčdďeéfghiíjklmnoópqrřsštťuúůvwxyýzž";
velkaPismena = "AÁBCČDĎEÉFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ";
while (retezec.length>0) {
znak = retezec.slice(0,1);
if (malaPismena.search(znak)!=-1) {
znak = malaPismena.charAt(malaPismena.length-malaPismena.search(znak)-1);
}
else {
if (velkaPismena.search(znak)!=-1) {
znak = velkaPismena.charAt(velkaPismena.length-velkaPismena.search(znak)-1);
}
}
novyRetezec += znak;
retezec = retezec.slice(1, retezec.length);
}
document.all.text3.value = novyRetezec;
}
</script>

</head>
<body>
<textarea name="text1">Sem vepište text, který chcete převést</textarea>
<textarea name="text2">Sem se text převede</textarea>
<textarea name="text3">Zde se objeví opět dekódovaný text</textarea>
<input type="button" onclick="prevest()" value="Převeď">
<input type="button" onclick="zpet()" value="Dekoduj">
</body>
</html>
Anonym21098116.06.2010 06:09 Nahlásit
Případně v těch písmenech bez diakritiky, když zadání bylo a-z, A-Z, ale takhle se mi to líbí více
tygrodlak16.06.2010 06:53 Nahlásit
nevadí, stačí přepsat proměné malaPismena a velkaPismena, jejich délky si script sám zjišťuje, takže žádné další úpravy nejsou potřeba
Anonym21098116.06.2010 08:08 Nahlásit
☺ Jsem zvědavá, jestli se k tomu Anonym210878 ještě vrátí. Líbilo se mi použití toho samého řetězce pro šifrování i dešifrování. ☺
Anonym21112516.06.2010 09:15 Nahlásit
ještě by to šlo udělat přes jednu jedinou funkci, která by dostala hodnotu například 1,2, podle které by se určil směr převodu text1->text2 nebo text2->text3, ale tak to si může anonym sám doladit, jenom to skrip o trochu zkrátí
Přidat komentář do diskuze ▾