Saturday, January 9, 2010

regex Validieren von numerischen Benutzereingaben

Anmerkung zum Validieren von numerischen Benutzereingaben
Natürlich ermöglichen es reguläre Ausdrücke, zu überprüfen, ob ein String eine Zahl ist. Jedoch gibt es viele Eigenschaften, die zum Beispiel bei einer Kommazahl berücksichtigt werden müssen: Zu Beginn kann optional ein Plus- oder Minuszeichen stehen, das Komma kann vorkommen, muss aber nicht, es darf nicht das erste Zeichen oder letzte Zeichen sein und höchstens einmal vorkommen, weiters muss jedes Zeichen, das kein Komma oder Plus-/Minuszeichen ist, eine Ziffer sein, … All dies ließe sich noch erledigen, erfordert aber bereits ein relativ komplexes Muster. Und dann gibt es bei einigen Zahlentypen noch eine Eigenschaft, welche fast unmöglich zu berücksichtigen ist: Int hat eine Länge von 32 Bit. Zu lange Zahlen führen bei der Konvertierung zur Ausnahme OverflowException. Daher sollte man zur Validierung von numerischen Benutzereingaben auf Regex verzichten und die vom .NET-Framework (ab .NET 2.0) bereitgestellten Methoden nutzen: Zur Überprüfung, ob eine Zeichenfolge zu Int konvertiert werden kann, gibt es Int32.TryParse und für Double Double.TryParse.

No comments:

Post a Comment

 
Blogverzeichnis - Blog Verzeichnis bloggerei.de Blog Suche