replace()
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.
■ 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>
Miért nem használsz inkább
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.
őőő
Az ilyesmiket így lehet
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 :)