comment faire pour limiter les valeurs saisies dans un champ de texte aux types numeriques seulement. càd si l'utilisateur saisi une lettre, voyelle ou autre caractere, j'affiche un message d'erreur
Version imprimable
comment faire pour limiter les valeurs saisies dans un champ de texte aux types numeriques seulement. càd si l'utilisateur saisi une lettre, voyelle ou autre caractere, j'affiche un message d'erreur
Utilise une expression régulière pour valider ton controle !
je n'ai rien compris de ton message, qu"est ce que tu veu dire?!!
tu as un controle du nom de RegulareExpressionValidator
Dedans il te suffit de mettre une expression reguliere dans l'option dite.
Pour trouver ton expression reguliere que tu veux, fait une recherche dans google, car tu peux dire si c'est un nombre negatif, positif, a virgule ou non ....
Si tu cherche des expressions régulières déjà toutes faites, va sur le site : http://regexlib.com/Default.aspx ;)
a vrai dire, je ne cherche pas l'expression reguliere mais plutot comment la declarer dans le code-behind. Parce que j'ai deja le code mais il est fusionné avec le html et tou ça. le voila :
Je veux savoir comment traduire ce code pour l'insere dans mon code-behindCode:
1
2
3
4
5
6
7
8 <asp:RegularExpressionValidator id="RegularExpressionValidator1" ControlToValidate="TextBox1" ValidationExpression="\d{5}" Display="Static" ErrorMessage="Zip code must be 5 numeric digits" EnableClientScript="False" runat="server"/>
Bah tu créer un objet RegularExpressionValidator, et ensutie tu met les propriétés de cet objet à jour.
Tu vois ce que je veux dire ?
tu veux le faire de maniere dynamique ?
Tu crées un Regular reg = new Regular();
et tu utilises ton reg.OptionExpReguliere = "/d(5)";
un truc dans le genre.
En fait, je ne saisie pas trop ou ce trouve ton problème :aie:
moi non plus, mais peut etre veut il un truc dynamique, sorti d'une bd ou je ne sais quoi ....
Ou alors on ne comprend pas ce que tu veux :)
Tiens, je te donne un bout de code que j'avais fait, il est pour un autre type de validateur, mais tu as juste une propriété à changer :)
J'espère que cela t'aidera !Code:
1
2
3
4
5
6
7
8 monLabel = new Label(); monLabel.Text = "<div align=left>Nom de la photo : "; maTextBox = new TextBox(); maTextBox.ID = "T_PH_name" + nbPhoto.ToString(); monValidateur = new RequiredFieldValidator(); monValidateur.ErrorMessage = " Le nom de la photo est oglibatoire !"; monValidateur.ControlToValidate = maTextBox.ID;
c ce que j'ai fais exactement:
L'erreur qui se produit sur "\d(5)" est la suivante:Code:
1
2
3
4
5 RegularExpressionValidator test = new RegularExpressionValidator(); test.ValidationExpression="\d(5)"; test.ControlToValidate="quota"; test();
Unrecognized escape sequence
C'est normal, ta séquence doit être : "\d{5}", les parenthèses ne représentent pas la même chose en regular expression :)
Change avec cette chaîne et tout devrait rouler :)
grrrrr, malhereusemnt, j'ai la meme erreur.
Aidez moiCode:
1
2test.ValidationExpression="\d{5}";
Tiens, ça marche chez moi :
Cependant \d{5} oblige à avoir 5 chiffres ...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class TEST : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { TextBox maText = new TextBox(); maText.ID = "quota"; Button monBtn = new Button(); monBtn.Text = "Je teste la regular !"; RegularExpressionValidator test = new RegularExpressionValidator(); test.ValidationExpression= @"\d{5}"; test.ControlToValidate = maText.ID; test.ErrorMessage = "NON C'est pas un \\d{5} !"; PlaceHolder1.Controls.Add(maText); PlaceHolder1.Controls.Add(monBtn); PlaceHolder1.Controls.Add(test); } }
oui excuser moi, c'etait un exemple, je n'ai pas dit que l'expression devait s'ecrire comme ca, et a mon avis c'est le @ qui manque chez lui
Super, le probleme est resolu.
Il fallait utiliser l'objer Regex et lui attribuer l'expression reguliere qui convient au champ du texte desiré.
Ce qui es entre parenthese est l'expression regulier d'un entier positifCode:
1
2 Regex oRgx = new Regex("^[1-9]+[0-9]*$");
@+