3 votes

Rails validates_format_of avec Regex échoue dans le cas d'une nouvelle ligne

J'essaie de valider une entrée alphanumérique qui autorise les espaces blancs et les nouvelles lignes.

 validates_format_of :field, with: /^[a-zA-Z0-9 ]*$/, multiline: true, allow_blank: true

dans mon formulaire, j'introduis cette donnée :

input

Et il est accepté et passe la validation

Le comportement souhaité est de n'accepter que du texte alphanumérique (autoriser les blancs) et d'accepter les espaces et les nouvelles lignes n'importe où dans le texte. Ainsi, l'entrée ne sera rejetée que si elle contient un caractère alphanumérique.

3voto

Wiktor Stribiżew Points 100073

Vous pouvez utiliser

/\A[a-zA-Z0-9 ]*(?:\R[a-zA-Z0-9 ]*)*\z/

Voir le Rubulaire démo.

Détails

  • \A - début de la chaîne
  • [a-zA-Z0-9 ]* - 0 ou plusieurs lettres, chiffres ou espaces
  • (?:\R[a-zA-Z0-9 ]*)* - 0 ou plusieurs répétitions de
    • \R - saut de ligne
    • [a-zA-Z0-9 ]* - 0 ou plusieurs lettres, chiffres ou espaces
  • \z - fin de la chaîne.

0voto

Chong Hwi Points 23

J'ai ajouté une virgule et un point à la liste blanche.

format: { with: /\A[a-zA-Z0-9 ,.;'"+-?!%$]*(?:\R[a-zA-Z0-9 ,.;'"+-?!%$]*)*\z/}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X