Expression régulière validateur ne valide pas vide textbox
-
01-10-2019 - |
Question
Je voudrais valider la zone de texte pour le texte spécifique et il ne doit pas être vide. Mais le validateur d'expression régulière ne valide pas si la zone de texte est BLANK . Cependant, il valide si je tape quelque chose dans la zone de texte.
Comment puis-je faire expression régulière pour déclencher même si la zone de texte est vide?
Dois-je utiliser Required Validator + Regex Validator en même temps? Merci.
<asp:TextBox ID="txtcard" runat="server" MaxLength="16"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server"
ControlToValidate="txtcard" ErrorMessage="Please type credit card no"
ValidationExpression="^\d{16}$"></asp:RegularExpressionValidator>
La solution
Je généralement pas comme vous le suggérez et un validateur également nécessaire. Cela vous permettra d'avoir un message différent pour chaque règle.
Une autre option que je recommanderais à tout look développeur web à validation est le plugin JQuery. Si vous combinez cela avec validation Fluent, vous pouvez garder toutes vos règles de validation pour vos objets métier en un seul endroit et vous pouvez valider sur le côté client et au serveur en utilisant ces mêmes règles.
Autres conseils
Vous devriez combiner votre RegularExpressionValidator
avec un RequiredFieldValidator
.
En cas de défaillance, il bloque en raison de tir de validation. Chacun a un but et le but de RegularExpressionValidator
est de valider le texte entré ne l'absence de texte.
Si vous voulez le faire tout en un validateur votre pourrait utiliser le CustomValidator
et ValidateEmptyText='true'
ensemble. Ensuite, vous pouvez utiliser le javascript regex pour faire la vérification. Je recommande les deux validateurs bien que ce soit une approche standard.
Vous devriez utiliser les deux en même temps. Pas une erreur de validation de retour si la valeur est vide est commun avec les contrôles de validation ASP.NET. Vous verrez le même comportement de la validation des attributs dans l'espace de noms System.ComponentModel.DataAnnotations.