Autor | Zpráva | ||
---|---|---|---|
Kyle Profil |
#1 · Zasláno: 21. 4. 2008, 15:58:55 · Upravil/a: Kyle
Zdravím, mám podmínku
if (!eregi ("^[a-zA-Z0-9[:space:]]{3,15}$", $_POST['xxx'])) echo 'error'; else echo $_POST['xxx']; dotaz zní: jak zajistit puštění max. jedné mezery? tzn. teď jde -> text1 text2 text3 já chci max. -> text1 text2 dá se to?! Díky za nápady na pomoc :) |
||
peta Profil |
#2 · Zasláno: 22. 4. 2008, 15:09:25
^ - zacatek retezce
[a-zA-Z0-9[:space:]] - seznam znaku {3,15} - 3,15 znaku $ - konec retezce jinymi slovy prestavet cely regularni vyraz tak, ale uprostred byla mezera a vse ostatni se zdvoji. [a-zA-Z0-9] {3,15} - seznam znaku [:space:]{0,1} - mezera [a-zA-Z0-9] {3,15} - seznam znaku A asi to budes chtit jinak, viz http://www.volny.cz/peter.mlich/www.htm#mssub19 |
||
bukaj Profil |
#3 · Zasláno: 22. 4. 2008, 16:59:11
Kyle
Jak již psal peta, regulární výraz by mohl vypadat "^[a-zA-Z0-9]{3,15} ?[a-zA-Z0-9]{3,15}$". Ale jelikož by výraz obstál i pro 31znakový řetězec (s jednou mezerou, 30 znaků bez mezery), bude to chtít ještě doplnit o strlen(). Doporučuji však používat PCRE - jsou mnohem rychlejší a mocnější. Jediná změna u nich je, krom jiných názvů fcí, používání delimiterů (vhodný český název nemohu najít) a modifikátorů. Vše je samozřejmě v manuálu. |
||
Časová prodleva: 16 let
|
0