Autor Zpráva
Enko
Profil *
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"]))
?>
Můžete mi prosím dále poradit, jak ověřujete přezdívku při registraci, když chcete používat pouze písmena a číslice?

Děkuji
panther
Profil
Enko:
[a-zA-Z]{3}
Toto by nebylo spravne?
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 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 *
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";
          }
  ?>
Můžete mi někdo poradit v čem je zakopaný pes?

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")) { ...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: