2010-01-25 12 views
17

Chciałbym dać moim użytkownikom możliwość nie tylko wypełniania liter i cyfr, ale także "specjalnych" liter, takich jak "á", "é", itp. Jednak nie chcę, aby byli w stanie używać symboli, takich jak „@”, „%” itdJak mogę dopasować znaki akcentowane za pomocą PHP preg?

Czy istnieje sposób, aby napisać regex do osiągnięcia tego celu (bez określania Korzystnie każdy specjalny list.)

teraz mam „!”?:

Odpowiedz

1

To, jakie znaki są uważane za "znaki słowne", zależy od ustawień regionalnych. Należy ustawić lokalizację, w której te postacie występują l alfabet i użyć modyfikatora /u do regexp, tak:

$str = 'perché'; 
setlocale(LC_ALL, '[email protected]'); 
echo preg_match('#^\w+$#u', $str); 
+0

również nie działa. Ale rozwiązanie Gumbo działało. Dzięki za odpowiedź – Maurice

3

można spróbować z tym regex:

$reg = '~[^\\pL\d]+~u'; 

które złapią również akcentowane znaki

+0

nie działa na moim serwerze. Ale odpowiedź Gumbo zadziałała. Dzięki za odpowiedź – Maurice

Powiązane problemy