je veux un validateur d'expression régulière qui aura des nombres jusqu'à 10 chiffres
j'ai essayé cela, mais c'est seulement pour les nombres et non pour les chiffres.
<asp:RegularExpressionValidator ID="rvDigits" runat="server" ControlToValidate="txtMobId"
ErrorMessage="Enter numbers only till 10 digit" ValidationGroup="valGroup" ForeColor="Red"
ValidationExpression="\d+" />
Vous devez utiliser un quantificateur limitant{min,max}
.
Si vous autorisez une entrée vide, utilisez {0,10}
pour faire correspondre 0 à 10 chiffres:
ValidationExpression="^[0-9]{0,10}$"
Sinon, utilisez {1,10}
pour permettre 1 à 10 chiffres:
ValidationExpression="^[0-9]{1,10}$"
Ou pour faire correspondre les exactement chaînes à 10 chiffres, omettez la partie min,
:
ValidationExpression="^[0-9]{10}$"
Notez également que la validation côté serveur utilise la syntaxe regex .NET et que \d
correspond à plus de chiffres de 0
à 9
dans cette variante de regex, préférez donc [0-9]
. Voir \d
EST MOINS EFFICACE QUE [0-9]
.
De plus, il semble que vous puissiez omettre les ^
et $
(voir MSDN Expressions régulières dans ASP.NET article ):
Vous n'avez pas besoin de spécifier les caractères de début de chaîne et de fin de chaîne (
^
et$
) - ils sont supposés. Si vous les ajoutez, cela ne fera pas de mal (ni ne changera) rien, c'est simplement inutile.
La plupart des gens préfèrent les garder explicites à l'intérieur du motif pour plus de clarté.
Testez cette réponse:
<asp:RegularExpressionValidator ID="rvDigits" runat="server" ControlToValidate="txtMobId" ErrorMessage="Enter numbers only till 10 digit" ValidationGroup="valGroup" ForeColor="Red" ValidationExpression="[0-9]{10}" />