Autor | Zpráva | ||
---|---|---|---|
adam22 Profil |
#1 · Zasláno: 2. 3. 2007, 12:32:11 · Upravil/a: adam22
Může mi prosím někdo alespoň přiblížit tenhle javascritovej(PHP) kód. Díky
<SCRIPT LANGUAGE="JavaScript"><!-- function zkontroluj(formular) { if (window.RegExp) { re = new RegExp("^[^.]+(.[^.]+)*@([^.]+[.])+[a-z]{2,3}$"); if (!re.test(formular.email.value)) { alert("Zadaná adresa není správnou adresou elektronické pošty!"); formular.email.focus(); return false; } } // --> </SCRIPT> <form action="insert.php3" method="post" onSubmit="return zkontroluj(this)"> <input type="text" name="email" value="@" size="30" maxlength="60" class="inputbook"> </form> |
||
peta Profil |
#2 · Zasláno: 2. 3. 2007, 13:29:54
onSubmit="return zkontroluj(this)
pokud je zaply JS, tak pri pokusu odeslat formular zavolej funkci zkontroluj s parametrem THIS, coz je odkaz na tag FORM ktery ve funkci potom pojmenovavas jako "formular" takze, pri odeslani zavolas funkci a jeji vysledek rozhodne, zda se formular odesle nebo ne, V pripade, ze mas JS vypnuty, odesle se na adresu v action. if (window.RegExp) - existuje funkce pro regularni vyrazy? re = new RegExp("^[^.]+(.[^.]+)*@([^.]+[.])+[a-z]{2,3}$"); - vytvor regularni vyraz if (!re.test(formular.email.value)) - otestuj formular.email.value na regularni vyraz if (!re..) jestlize test fuknce vrati !=negaci ano / ne -> return true / false vystup z funkce je ano regularni vyraz je sada instrukci pro slozeni retezce (regexp.cz, visibone.com) cili konktretne "^[^.]+(.[^.]+)*@([^.]+[.])+[a-z]{2,3}$" "^...$" - reg. vyraz musi sedet presne na zacatek a konec retezce tj. "^a.*b$" sedi jen pro retezce "a0123b", "aasfb", "ab", "a ssfgbb aa b" nesedi pro "neco.a456b" (kde retezec nezacina a, ikdyz konci b) . - jakkoliv znak [^.] - 1 znak, ktery neni roven "." + - predchozi znak v poctu 1 az nekonecno, tj. [^.]+ 1-n znaku, ktere nejsou "." [^.]+(.[^.]+)* 1-n znaku, ktere nejsou "." pak 1 jakykoliv znak (tez by to mohla byt tecka, ale ta se zalomitkovava jednim zpetnym lomitkem \.) pak 1-n znaku, ktere nejsou "." kombinace v zavorce opakovana 0-n jinymi slovy, jestli je ten uprostred tecka, pak "aaa.aaa", "a.a", "a", "a.a.a.a.a.a.a" @ - znak zavinac (mozna by mel byt taky zalomitkovany, viz http://www.visibone.com/regular-expressions/) ([^.]+[.])+ kombinace: ((netecka)1-n krat + tecka) 1-n krat [a-z]{2,3} na konci 2-3 znaky od a do z (minimalne 2, maximalne 3) samozrejme struktura mailove adresy vypada uplne jinak, toto je jen nejake zjednoduseni, ktere umoznuje jen abcd.efg.hij_#klm@xy$%&z.a%$%bc.def .def sice muze byt .org .cz .com ale tez ahoj.museum:8080 s cimz tvuj vyraz vubec nepocita, navic povoluje v mailove adrese vsechny znaky krome tecky. Norma je daleko prisnejsi azAZ09\!#\$%&'\*\+-\/\=\?\^_\`\{\|\}~ jak vidis, $ povoleny treba je, ale dvojita uvozovka treba uz ne nebo řšč mezera, ktere se pisi s procenty mezera = %20 |
||
adam22 Profil |
#3 · Zasláno: 2. 3. 2007, 18:23:17
hele moc děkuju. musel si s tim dát moc práce ... fakt moc díky
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0