Bonjour,
Dans une classe, je veux écrire une expression régulière qui accepte les formes suivantes:
var_dump($chk->ctlFirstname("Michel"));
var_dump($chk->ctlFirstname("J.-M."));
var_dump($chk->ctlFirstname("J. Michel"));
var_dump($chk->ctlFirstname("J.-Michel"));
var_dump($chk->ctlFirstname("JM"));
Mais pas celle-ci:
var_dump($chk->ctlFirstname("J..-M."));
J'ai le code suivant qui est trop permissif puisqu'il accepte le dernier exemple avec les deux points consécutifs : "#^[A-ZÀÁÂÆÇÈÉÊËÌÍÎÏÑÒÓÔŒÙÚÛÜÝŸ]([a-zàáâæäßçéèêëìíîïñòóôöœùúûüýÿ])?([\. -][A-ZÀÁÂÆÇÈÉÊËÌÍÎÏÑÒÓÔŒÙÚÛÜÝŸ][a-zA-Zàáâæäßçéèêëìíîïñòóôöœùúûüýÿ\.])?#%s".
Le %s final sert à ajouter un i avec sprintf() pour l'insensibilité à la casse.