po dlhšom čase som aj ja narazil na jeden problém s ktorým si neviem rady,
potrebujem pri registrácii kontrolu nepovolených znakov a na to som krátky,
používam kódovanie UTF-8
ide presne o toto:
v registrácii pre meno majú byť povolené len znaky
[a-zA-Z] samozrejme s diakritikou a medzera a nič iné
potrebujem upraviť tento pôvodný zápis:
Kód:
if (!preg_match("/^[-0-9A-Z_@\s]+$/i", $name)) { $error .= "CHYBA meno obsahuje nepovolené znaky"; }
skúsil som napríklad aj toto:
Kód:
mb_regex_encoding('UTF-8');
if (!mb_ereg("^[a-zA-Z\s]*", $name)) { $error .= "CHYBA meno obsahuje nepovolené znaky"; }
tento zápis síce diakritiku zvládne, ale bohužiaľ prepustí aj ostatné znaky a celkom nelogicky aj čísla, ktoré ja tam nechcem.
akonáhle ukončím reťazec:
Kód:
mb_regex_encoding('UTF-8');
if (!mb_ereg("^[a-zA-Z\s]*$", $name)) { $error .= "CHYBA meno obsahuje nepovolené znaky"; }
tak to funguje takmer správne ale tentoraz zase bez diakritiky
a podobné je to aj s preg_match
pozná niekto riešenie, ktoré by splnilo hore uvedené podmienky?