Bonjour a tous.
J'ai un regex qui valide un champs nom dans mon entité symfony:

    /**
     *
     * @ORM\Column(name="prenom", type="string", nullable=false)
     * @Assert\NotBlank()
     * @Assert\Regex(
     *     pattern="/^[^0-9-<>()\[\]\\.,;:\s@\'"]+[-a-zA-ZÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ\s]{2,}$/",
     *     match=false,
     *     message="string.name.mismatch"
     * )
     *
     */
    protected $prenom;

Mais ça me retourne une erreur a cause de:

"

qui se trouve dans la premiere classe du regex:

[^0-9-<>()\[\]\\.,;:\s@\'"]

Quelqu'un peut m'aider a resoudre ce probleme?

6 réponses


Salut Steeve,

il faut fait \" sinon il considère ta guillemet comme la fermeture de "/^[^0-9-<>()[]\.,;:\s@\'" et je ne pense pas que c'est ce que tu veux faire ;)

essaye donc [^0-9-<>()[]\.,;:\s@\'\"]

Je l'ai fait, mais j'obtiens la meme erreur @Jonathan

En quoi est utile le \s ?
enlève le \ avant (')

sinon essaye ça :

"/^[^0-9-<>()[]\\.,;:\s@'\"]

Je suis un peu rouiller avec les expression régulière ^^

Encore le meme resultat.

le \s est xpour eviter que les noms commencent par un caractere blanc.. espace par exemple

Tu a regardé ce que ça donne si tu enlève la guillemet ?

ça marche quand j'enlève les guillemets, je n'ai plus d'erreurs. Mais le problème est que je veux éviter que les noms commencent par des guillemets. Je ne vois pas comment créer le regex qui va permettre de ne pas valider les noms qui commence par des guillemets