Caractères spéciaux causant des problèmes avec la validation Joi
P粉267791326
P粉267791326 2023-08-31 09:52:18
0
1
492
<p>Je souhaite limiter le contenu de la zone de texte à 250 mots. J'utilise la validation Joi pour y parvenir. Il doit compter tous les caractères (y compris les caractères spéciaux) et n'autoriser que 250 mots. Mais j'ai rencontré le problème suivant. </p> <ol> <li><p>Dès que le premier caractère spécial apparaît, même après 3 mots, j'obtiens une erreur de validation joi disant "Cette section ne peut pas dépasser 250 caractères". </p> ≪/li> <li><p>Lorsque je copie et colle le contenu d'un PDF, mon écran se fige. Je pense donc qu'il y a quelque chose qui ne va pas avec mon schéma Joi. </p> ≪/li> </ol> <pre class="brush:php;toolbar:false;">description1 : Joi.string().regex(/^(([ws,."'()-]+)b[s,.] *){0,250}$/).options({ langue : { string : { regex : { base : 'Cette partie ne peut pas dépasser 250 caractères' } } } }).label("Cette partie"),< ; <p>Quelqu’un peut-il m’aider ? </p>
P粉267791326
P粉267791326

répondre à tous(1)
P粉916760429

Cela pourrait fonctionner :

/^\s*(?:\S+\s+){0,249}\S*\s*$/

est complètement différent de la simple correspondance [a-zA-Z0-9_]w不同,特殊符号S匹配任何非空格字符。因为字符集Ss dans votre regex d'origine, cela devrait donc éviter tout problème lié à un retour en arrière catastrophique.

Explication :

  • s* Zéro ou plusieurs espaces au début. Ceux-ci ne sont pas comptés.
  • (S+s+) Un mot composé d'un ou plusieurs caractères non-espaces suivis d'un ou plusieurs caractères espace.
  • {0,249} Répétez jusqu'à 249 fois
  • S* Ajoutez éventuellement un mot supplémentaire à la fin, qui ne doit pas se terminer par un espace. Il s'agit du 250ème mot, le nombre de lignes ci-dessus doit donc être de 249 et non de 250.

Cela ne remonte que la longueur du dernier mot, donc peut être lent si le dernier mot est très long. Cependant, la croissance ne peut pas être exponentielle et ne devrait donc pas entraîner l’effondrement de Joi.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!