ugrás a tartalomhoz

replace()

newyorkerboy · 2009. Nov. 20. (P), 16.22
Sziasztok!
Adott a lent található kód, mellyel e-mail címeket szeretnék kódolni, nyilván nem számokkal, ahogy a példában van, de így tűnt ki, hogy mi is a gond. A @ karakter dekódolásánál nem cseréli le a jelet "27."-ről magára a jelre. Keresgéltem itt-ott, de nem találtam, hogy miért van ez, talán ti tudtok segíteni.

<script>
var eredeti=new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","\@");
var kodolt=new Array("01.","02.","03.","04.","05.","06.","07.","08.","09.","10.","11.","12.","13.","14.","15.","16.","17.","18.","19.","20.","21.","22.","23.","24.","25.","26.","27.");

function coder(str){
for(var i=0;i<=str.length;i++){
str=str.replace(eredeti[i],kodolt[i],"g");}
document.write(str);}

function decoder(str){
for(var i=0;i<=str.length;i++){
str=str.replace(kodolt[i],eredeti[i],"g");}
document.write(str);}

coder("valami##kukac##valami.hu");
decoder("22.01.12.01.13.09.27.22.01.12.01.13.09..08.21.");
</script>
 
1

Miért nem használsz inkább

rrd · 2009. Nov. 20. (P), 17.40
Miért nem használsz inkább base64 vagy valami más szabványos kódoló eljárást?

Egyébként a coder függvényed nem a @-ot nem cseréli le, hanem nem azt csinálja amit szeretnél. Pl a coder("alma"); eredménye 01.lm01. (vagyis csak az a-kat cserélte le) lesz ugyanis nem kikeresed az eredeti-ből az aktuális karakert hanem a stringbeli sorszáma alapján cseréled ki a kódolt tömbből.
2

őőő

newyorkerboy · 2009. Nov. 20. (P), 17.56
gondoltam, ha megtudom csinálni magamnak, akkor miért ne használjam a sajátomat. de ezek szerint nem tudom :( egyébként amit mondasz eddig fel sem tűnt, mert e-mail címmel tesztelve csak a kukac nem működött.
3

Az ilyesmiket így lehet

rrd · 2009. Nov. 20. (P), 18.04
Az ilyesmiket így lehet megtalálni:

1. Firebug feltelepít
2. str=str.replace(eredeti[i],kodolt[i],"g");} sorba töréspontot berak
3. Néz, hogy mi történik
4. Örül, mert 30 másodperc alatt rájön, hol a bibi :)