2016-07-18 8 views
-2

Ich habe ein System, wo ich Releases erstellen und ich muss die Release-Version über ein Textfeld geben. Das Feld, in dem es in meiner Datenbank gespeichert ist, ist ein Nvarchar, also ein String.Wie überprüft man einen String-Eintrag, um sicherzustellen, dass es in einem Format von "Number.Number.Number" (1.2.3)

Ich möchte sicherstellen, dass dieser Eintrag formatiert ist, so ist es immer eine Nummer, dann ein Punkt, dann eine Nummer, dann ein Punkt und dann wieder eine Nummer (1.2.3). Kann mir jemand helfen, dafür zu sorgen, dass dies der Fall ist?

Vielen Dank im Voraus.

+0

Für diesen ein regulärer Ausdruck wie \ d \. \ d \. \ d wäre eine mögliche Lösung. –

+0

'^ [0-9] + (\. [0-9] +) {2} $' pattern (reguläre Ausdrücke) –

+0

http://StackOverflow.com/Questions/24683744/regex-test-for-number- Nummer-Nummer – apomene

Antwort

3

Mit RegEx können Sie Ihre Eingabe validieren. Ich gehe davon aus, indem Nummer eine Ziffer bedeuten:

string text = "1.2.3"; 
bool isValid = Regex.IsMatch(text, "^\\d\\.\\d\\.\\d$"); 

Wenn Sie ein validieren möchten oder mehr Stellen haben Sie +

string text = "12.23.34"; 
bool isValid = Regex.IsMatch(text, "^\\d+\\.\\d+\\.\\d+$"); 
0

Verwenden einen regulären Ausdruck hinzuzufügen:

^\d+\.\d+\.\d+$ 

Die^bedeutet Start, das $ bedeutet Ende, \ d + sagt "mehr als eine Ziffer ist in der Zeile verfügbar" und. meint "." aber muss mit der führenden \ aufgrund entkommen. eine besondere Bedeutung in Regex haben.

0

Längere Weg, ohne regex (Ich habe einen Hass auf regex ... nur eine Frage des Geschmacks, ich weiß, ich sie lernen sollten, und sie verwenden, wenn angemessen ...)

bool IsInputValid(string input) 
{ 
    string[] values = input.Split('.'); 
    if (values.Length != 3) 
     return false; 
    int tmp = 0; 
    foreach (string s in values) 
     if (!int.TryParse(s, out tmp)) 
      return false; 
    return true; 
} 
Verwandte Themen