Regex: Lettres latines arabe

Mammouth du PHP | 725 Messages

24 févr. 2012, 05:18

Bonjour,

Je voudrais verifier un champs s'il contient seulement des lettre latines ou arabes avec ou sans chiffres (l'espace et acceptable):
function checkRegex($regex, $field)
    {
        if(preg_match($regex, $field)) // regex: '/^[A-Za-z0-9أ-ي\s]+$/' maj min arabe chiffres et espace
        {
            return TRUE;
        }
            return FALSE;
    }

ce code n'accepte pas les champs entrees en arabe

merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 févr. 2012, 11:52

salut,

il semble que php doivent être compilé en spécifiant prce utf-8, regarde les commentaires dans la doc de la fonction preg_match
il y a aussi ceux de la présentation des PRCE qui oriente plus vers l'utilisation de l'extension mbstring

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 725 Messages

24 févr. 2012, 12:28

salut,

il semble que php doivent être compilé en spécifiant prce utf-8, regarde les commentaires dans la doc de la fonction preg_match
il y a aussi ceux de la présentation des PRCE qui oriente plus vers l'utilisation de l'extension mbstring

@+
j'ai trouve cett reference: http://www.regular-expressions.info/refunicode.html
\p{Arabic}
et ca marche bien

alors comment combiner entre les 2, latines et arabic, sachant que mon code est:
$regex = '/\p{Arabic}/u';
merci

tixboubou
Invité n'ayant pas de compte PHPfrance

07 juil. 2012, 20:16

Code : Tout sélectionner

return ( ! preg_match("/^([a-z\p{Arabic}0-9_-\s])+$/u", $str)) ? FALSE : TRUE;

Mammouth du PHP | 725 Messages

08 juil. 2012, 03:21

merci tixboubou, je vais l'essayer