Autor | Zpráva | ||
---|---|---|---|
High_Voltage Profil * |
#1 · Zasláno: 21. 10. 2011, 19:00:33
Dobrý den, poradíte mi pls kde tu mám chybu ?
je to skript, který ověřuje, jestli pole neobsahuje nepovolené znaky. Zvlášť prosím věnujte pozornost 10. řádku, protože jsem z toho zmatenej, proč tam je false. Ten skript funguje, když je to zakázané písmeno na prvním místě řetězce. Když je třeba druhé, tak to "řekne" že je vše OK <form name="formular"> <INPUT TYPE="TEXT" NAME="pole" VALUE="text" ID="pole"> <INPUT TYPE="BUTTON" onclick="kontrola()" VALUE="TEST"> </form> <script> var seznamzak = ["á","č","ď","é","ě","í","ň","ó","ř","š","ť","ú","ů","ý","ž"]; function kontrola() { var poradi = 0; while (poradi < seznamzak.length - 1) { if (document.formular.pole.value.indexOf(seznamzak[poradi]) == false) { alert('nepovolený znak'); break; } else { // akce při každém zprávném písmenu }; poradi++; }; }; </script> Pomozte mi s tím pls, díky za každou odpověď, případně odkaz na nějakou alternativu. |
||
_es Profil |
#2 · Zasláno: 21. 10. 2011, 19:09:10 · Upravil/a: _es
High_Voltage:
Klikni si v tvojom kóde na „indexOf“ a zistíš aké hodnoty tá metóda vracia - ľahko prídeš na to, aký má byť test. Ten cyklus by sa aj dal nahradiť použitím regulárneho výrazu. |
||
CZechBoY Profil |
#3 · Zasláno: 22. 10. 2011, 01:06:38
hrubka v komentáři :D
místo == false tam dej >=0 a bude to fungovat ;) false má tuším hodnotu int(0), pole jsou číslovány od indexu 0 proto to funguje jen když je tam písmeno á funkce indexOf vrací pozici v poli ošetři velká písmena |
||
Witiko Profil |
#4 · Zasláno: 22. 10. 2011, 01:26:26 · Upravil/a: Witiko
High_Voltage:
„na nějakou alternativu“ Šel bych na to přes regulární výrazy, je to čistší: /á|č|ď|é|ě|í|ň|ó|ř|š|ť|ú|ů|ý|ž/ig.test(document.formular.pole.value) true / false a bere i velká písmena díky praporku i - ignore case.
|
||
Časová prodleva: 13 let
|
0