Goedemiddag forum leden,

Ik probeer Russische karakters in een formulier inzending te vinden. Maar het lukt me niet om dit voor elkaar te krijgen:

Ik heb een eenvoudig voorbeeld geschreven, maar zelfs dan blijft uitkomst "Geen Russisch". Enig idee waarom?

$my_form_value = "йждил";
$banned_words = "йждил";
$words = explode(',', $banned_words);
foreach ($words as $word) {
	if ( preg_match("/\b".$word."\b/i", $my_form_value) ) {
		echo "Wel Russisch";
	} else {
		echo "Geen Russisch";
	}
}


Update: ik zie dat Russische karakters niet doorkomen, maar mijn variabelen waren iets zoals:
$my_form_value = "abc";
$banned_words = "abc";
Het lijkt erop dat je alle Russische karakters uit het Cyrillische alfabet met deze reg-ex kan herkennen:
[\x{0400}-\x{04FF}]
Ik gebruikte dus preg_match() totdat ik er achter kwam dat het niet werkte met Russische (Cyrillische) woorden. Maar hetzelfde voor bepaalde Poolse woorden, etc. Maar wanneer ik mb_ereg() gebruik werkt het wel naar behoren. Dus het eerste voorbeeld van Adoptive Solution hier.
Er zijn meer talen die Cyrillische karakters gebruiken. Bijvoorbeeld Oekraïens en Bulgaars.

Dan zou puur herkenning van 1 karakter niet voldoende zijn.
Hoi Ivo,

Ik noem Russisch, want daar liep ik tegen aan. Maar ik wil eigenlijk specifieke woorden kunnen detecteren in elke taal. Met mb_ereg() lijk ik een eind te komen..

Guido

Reageren