Autor | Zpráva | ||
---|---|---|---|
Enko Profil * |
#1 · Zasláno: 18. 9. 2012, 12:29:33
AHoj, hledám řešení jak nastavit masku pro preg_match() začínající 3mi písmeny a pak můžou být pouze písmena nebo číslice. Pro zatím mám toto, ale nepříjde mi to jako elegantní. S regulárními výrazy začínám.
<?php if(!preg_match("^[a-zA-Z][a-zA-Z][a-zA-Z]", $_POST["nick"])) ?> Děkuji |
||
panther Profil |
Enko:
[a-zA-Z]{3} EDIT: cetl jsem jen kousek prispevku, reagoval jsem na „Pro zatím mám toto, ale nepříjde mi to jako elegantní“. „když chcete používat pouze písmena a číslice?“ tak to je to same, ne? [a-z0-9] s modifikatorem i .
|
||
ShiraNai7 Profil |
#3 · Zasláno: 18. 9. 2012, 12:33:46
3 písmena + 1 nebo více písmen nebo číslic:
[a-zA-Z]{3}[a-zA-Z0-9]+ 3 písmena + žádné nebo několik písmen nebo číslic: [a-zA-Z]{3}[a-zA-Z0-9]* |
||
Enko Profil * |
#4 · Zasláno: 18. 9. 2012, 12:43:06 · Upravil/a: Enko
Děkuju všem :)
Tak ještě prosím o jednu radu: v online testeru mi tato maska funguje v pohodě [a-zA-Z]{3}[a-zA-Z0-9]* Ale jakmile dám toto na hosting, tak nic neprojde validací <?php if(!preg_match("[a-zA-Z]{3}[a-zA-Z0-9]*", $_POST["nick"])){ $chyba[] = "<div class=\"error\"><strong>Přezdívka</strong> musí začínat minimálně třemi písmeny a dále musí obsahovat pouze písmena nebo číslice</div>\n"; } ?> Díky |
||
Tori Profil |
Enko:
Chybí oddělovače. A taky přidejte ukotvení k začátku a konci řetězce, jinak projde i "!@#$%^&ABC!@#$%" , protože někde uprostřed obsahuje tři písmena. Dohromady tedy:
if(!preg_match("#^[a-z]{3}[a-z0-9]*$#i")) { ... |
||
Časová prodleva: 12 let
|
0