Pogčedajte punu verziju : preg_match koji propusta "srpska" slova
flash_back
16. 11. 2008., 01:51
dali imate ideju kako ovo da se napise.. ja evo guglam vec sat vremena i bez uspeha.. znaci treba mi obican preg_match koji ce da propusti sva slova ukljucujuci i "ČĆĐŠ.."...
mogu da izvedem hack, da ih pre provere pretvorim u obicna ali nije to to :)
bOkIcA
16. 11. 2008., 02:57
zar nije to ono nekako simple?! :1050:
$s = "abcšđč枊ĐČĆŽkdfef";
if (!preg_match("/^[0-9a-zA-Zšđč枊ĐČĆŽ]*$/", $s))
exit("NE.");
echo "da";
Djuki
16. 11. 2008., 12:25
I naravno sam php fajl sačuvati kao utf-8. Zend ima ovu mogućnost. Bokica je u pravu, ne vidim zašto ovo ne bi radilo.
flash_back
16. 11. 2008., 14:54
svaka cast, simple a radi :) hvala
dinke
16. 11. 2008., 17:33
Za utf karaktere treba samo dodati jedan \pL i na kraju posle / i tzv. utf modifier, 'u'.
<?php
$s = "abcšđsdfč枊ĐČĆŽkdfef";
if (!preg_match("/^[a-z\pL]+$/u", $s))
{
echo "ne";
}
else
{
echo "da";
}
?>
Naravno da nije potrebno ubacivati sva nasa slova na listu.
bOkIcA
16. 11. 2008., 18:05
Opet je pitanje sta covek od karaktera hoce da dozvoljava, sa \pL ili "/^[\w\pL]+$/" dozvoljavaju se mnogi (i cudni) karakteri svih jezika a sa npr. \p{Greek} se mogu ograniciti i na samo jedno pismo.
dinke
16. 11. 2008., 19:27
^ Definitivno nece propustati brojeve sto nije slucaj sa regexp-om koji si ti dao :)
bOkIcA
17. 11. 2008., 01:59
Pa nisu trazeni brojevi nego "sva slova ukljucujuci i ČĆĐŠ.." :P
;)
dinke
17. 11. 2008., 09:28
^Tako je to ti i ja kazem, a ako ono 0-9 u tvom regexp-u ne pusta brojeve onda ne znam sta ce :)
Lapsus pretpostavljam ali rekoh da ukazem na propust ;)
Br@nkoR
17. 11. 2008., 09:30
\p{Latin}
\p{Cyrillic}
bOkIcA
17. 11. 2008., 10:22
lapsus :1043:
vBulletin® v3.6.8, Copyright ©2000-2009, Jelsoft Enterprises Ltd.