2011-11-28 1 views
0

Je dois écrire en utilisant un validateur personnalisé pour vérifier si une zone de texte a un nombre avec un nombre décimal par exemple 95,3. Quelle est l'expression à accomplir dans les contrôles du serveur de validation dans asp.net?Utilisation de contrôles serveur de validateur personnalisés

+0

Voulez-vous échouer à la validation si l'entrée de l'utilisateur contient une décimale ou si elle requiert une décimale? – lukiffer

Répondre

0

Quelque chose comme cela devrait fonctionner, vous pouvez modifiy pour permettre autant de décimales dont vous avez besoin ou si vous voulez:

\d{0,}.\d{0,2} 

En supposant que vous parlez des expressions régulières. Mais si vous l'étiez, vous devriez utiliser un validateur d'expressions régulières au lieu d'un validateur personnalisé.

En outre, voici un lien vers une autre question très similaire. link

0

En cas validator_ServerValidate vous pouvez le faire:

Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate 
    If args.Value.Contains(".") Then 
     '*** Textbox has a decimal...do what you need to handle it ***' 

    End If 
End Sub 

Mais comme d'autres mentionnent, sans le savoir un peu plus sur exactement ce que vous devez avoir arriver, vous auriez probablement eu envie de regarder soit un régulier expression validateur et essayer de valider sur le côté client au lieu de côté serveur (à moins que vous devez avoir sur le postback arriver)

+0

Bien que cela va en fait détecter si certaines chaînes contiennent un point "." ou non, il trouvera également un point sur toute autre chaîne. –

+0

Comme je l'ai mentionné il doit être plus descriptif sur la façon dont il veut que la validation se produise ... s'il doit être côté serveur, il peut aussi simplement vérifier si la valeur est numérique aussi (j'espère qu'il sait comment fais ça au moins). – Chris

0

S'il vous plaît essayez ce qui suit:

float f; 
bool isFloat =float.TryParse("a.0", out f); //Will return false 

bool isFloat2 =float.TryParse("95.3", out f); //will return true 

Bonne chance!

Questions connexes