RegularExpressionValidator pour limiter les entrées de longueur avec pas de limites sur les types de caractères
Je suis en train d'utiliser un RegularExpressionValidator
pour valider un TextBox
d'entrée de longueur. - Je avoir de travail, mais il n'accepte que les lettres et les chiffres. J'aimerais permettre à tout caractères, avec le chèque seulement, il n'existe pas de plus de 25 caractères.
<asp:TextBox ID="MenuLabel" runat="server" />
<asp:RegularExpressionValidator ValidationExpression="^[a-zA-Z0-9]{25}$" ID="MenuLabelVal" runat="server" ErrorMessage="Menu Label must be no longer than 25 characters." ControlToValidate="MenuLabel" />
Les expressions régulières ne sont pas mon fort, donc, quelqu'un peut-il me dire comment je modifier ^[a-zA-Z0-9]{25}$
pour représenter tous les caractères jusqu'à 25 fois plutôt que de simplement alpha-numérique.
Note 1: j'ai déjà un RequiredFieldValidator
en place pour assurer 1 ou plusieurs caractères.
Note 2: je sais que je pourrais simplement utiliser le MaxLength
de propriété sur la zone de texte, cependant, cette forme est aussi pour la modification de données existantes, et je ne veux pas que de simplement couper les enregistrements existants lors de l'édition. Je préfère le mettre en œuvre un programme de validation qui rend évident pour les utilisateurs de l'édition de données existantes dont ils ont besoin pour raccourcir la valeur, plutôt que de la forme de tronquer sans que l'utilisateur s'en rendre compte.
Note 3: je suis ouvert à d'autres solutions, comme un validateur personnalisé, tant qu'elle repose uniquement sur la validation côté client. Je n'ai pas accès au code-behind pour écrire un personnalisé valider gestionnaire sur le serveur.
Vous devez vous connecter pour publier un commentaire.
devrait limiter la valeur à tout char de 1 à 25 fois. Pas sûr de savoir comment cela va traiter de saisie unicode bien qu'il peut compter sur plusieurs octets caractères comme un seul char, donc soyez prudent si vous utilisez ce pour en limiter pour une base de données
peut-être que vous pourriez
^.{1,25}$
mais je pense que même cette simple version devrait fonctionner.{25}
et^.{25}$
. Les deux valides avec 0 ou 25 caractères. De 1 à 24 valider comme non valide. Devrait-il être^.{1,25}
?^.{1,25}$
semble être la meilleure option. Sans les extrémités avec de la clause, la validation était en train de faire des choses étranges. J'ai mis à jour votre réponse, j'espère que vous n'avez pas l'esprit. L'original de .{25} validé uniquement quand exactement 25 caractères ont été utilisés. J'ai été à la recherche pour la plage.Si vous utilisez un validateur personnalisé, alors vous pourriez faire quelque chose comme ceci:
Et votre javascript serait quelque chose comme ceci: