web-dev-qa-db-fra.com

Validateur d'expression régulière pour 10 chiffres et chiffres uniquement c # asp.net

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+" />
4
user6465356

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é.

7
Wiktor Stribiżew

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}" />
1