Autor | Zpráva | ||
---|---|---|---|
nevimsvejmeno Profil * |
Ahoj, potreboval bych poradit. Potrebuju reg. vyraz pro toto pravidlo
Jedna se o retezec, ktery muze byt az 0- 50 znaku Muze obsahovat pismena + cisla + pomlcky + tecky Ale nesmi obsahovat jen pomlcky a tecky nebo jen jedno z toho samostatne A nesmi obsahovat dve a vice tecek ci pomlcek zasebou, ale muze jich byt vicero v celem retezci A nesmi koncit ci zacinat teckou a pomlckou takze napriklad validni je "ahoj-ahoj" "ahoj" "ahoj.ahoj-test" a nevalidni by byl ".ahoj" "ahoj." "." ".-" "-" "moje-" "moje." "jak.-se-mas" "jak-.se-mas" diky Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
|
||
ShiraNai7 Profil |
#2 · Zasláno: 9. 11. 2011, 15:51:04 · Upravil/a: ShiraNai7
Jedním reg. výrazem tohle všechno asi nepůjde.
Ale jde na to udělat jednoduchá funkce: function kontrola($str) { if(preg_match('~^[a-zA-Z0-9][0-9a-zA-Z.\-]{0,48}[a-zA-Z0-9]$~', $str) !== 1) return false; // povolene znaky a delka if(preg_match('~[.\-][.\-]~', $str) !== 0) return false; // opakovani .- return true; // vse ok } edit: ještě jsem funkci zkrátil.. o dost A tu test, že funguje jak má: var_dump( kontrola('ahoj-ahoj'), kontrola('ahoj'), kontrola('ahoj.ahoj-test'), kontrola('.ahoj'), kontrola('ahoj.'), kontrola('.'), kontrola('.-'), kontrola('-'), kontrola('moje-'), kontrola('moje.'), kontrola('jak.-se-mas'), kontrola('jak-.se-mas') ); Výsledek: bool(true) bool(true) bool(true) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) |
||
king26 Profil |
#3 · Zasláno: 9. 11. 2011, 15:51:57 · Upravil/a: king26
/^[a-z0-9]+([.\-][a-z0-9]+)*$/i délku otestuješ pomocí mb_strlen() Místo a-z0-9 si můžeš dát co potřebuješ aby prošlo. |
||
nevimsvejmeno Profil * |
Dekuji, funguje reseni od kinga:), lock pls
Moderátor Joker: My tu nezamykáme vlákna když řešení autorovi stačí. Občas později někdo přijde s ještě lepším, nějakou užitečnou poznámkou, nebo doplňujícím dotazem k problému.
|
||
Časová prodleva: 12 let
|
0