|
|
PHP - regulérní výrazy, ereg
|
1.4.2011 22:50
Honza Neřeknu
|
Dobrý den
potřeboval bych pomoc s podmínkou na validnost textu zadaného uživatelem.
Text smí v prvním případě obsahovat znaky [a-z A-Z 0-9] a pomlčku, ale na na začátku a na konci.
Ve druhém případě smí obssahovat jen znaky [a-z A-Z 0-9]
jejich počet je libovolný (ověřuji jinde)
Formát:
if (!ereg (' a-z A-Z 0-9 ', $_POST['reg_name']))
{
echo "Špatně!";
}
Vlastně potřebuji 2 takové podmínky, vstupní parametr je $_POST['reg_name'] a $_POST['reg_pass'], ale to si upravím sám :)
Díky moc všem za odpověď |
|
|
Re: PHP - regulérní výrazy, ereg
|
3.4.2011 01:39
Aleš Hakl
|
[a-zA-Z0-9][-a-zA-Z0-9][a-zA-Z0-9]
S poznamkou, ze LC_COLLATE musi byt takovy, aby to odpovidalo vasi predstave o tom, co to znamena a-z. A ta pomlcka musi byt v te mnozine uvedena budto jako prvni nebo jako posledni. |
|
|
Re: PHP - regulérní výrazy, ereg
|
18.4.2011 15:43
Petr Sedláček
|
Nemělo by být spíše ^[a-zA-Z0-9][-a-zA-Z0-9]*[a-zA-Z0-9]$ ? Ještě s případnou OR větví pokud nás zajímají i jednopísmenná zadání. |
|
|
Re: PHP - regulérní výrazy, ereg
|
21.4.2011 04:18
Aleš Hakl
|
Melo :) |
|
|
Re: PHP - regulérní výrazy, ereg
|
18.4.2011 17:33
Marek Beleščiak
|
pomlcka moze byt hocikde v [ ] ale musi sa zadat ako \- |
|
|
Re: PHP - regulérní výrazy, ereg
|
21.4.2011 04:16
Aleš Hakl
|
Vsimnete si, ze dotaz je na ereg a nikoli PCRE.
PHP sice z nejakeho pomerne podivneho duvodu pouziva vlastni implementaci POSIXovych regularnich vyrazu, ale je to jenom lehce upravena klasicka implementace od Henryho Spencera. Vsimete si implementaci funkci p_bracket() a p_b_term() v php/ext/ereg/regex/regcomp.c, opravdu backslash nijak specialne nezpracovavaji.
A nakonec citujme The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition (neboli Single UNIX Specification v3), Base Definitions, 9.3.5.7, posledni dva odstavce:
"""The hyphen character shall be treated as itself if it occurs first (after an initial '^', if any) or last in the list, or as an ending range point in a range expression. As examples, [ . . . ]. To use a hyphen as the starting range point, it shall either come first in the bracket expression or be specified as a collating symbol; for example, "[][.-.]-0]", which matches either a right bracket or any character or collating element that collates between hyphen and 0, inclusive.
If a bracket expression specifies both '-' and ']', the ']' shall be placed first (after the '^', if any) and the '-' last within the bracket expression.""" |
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|