2016-06-18 26 views
0

Ich habe ein Textfeld, dass die Anforderungen sind fünf numerische Zeichen, gefolgt von 3 Buchstaben, die übereinstimmen, was in einer Dropdown-Liste ausgewählt wurde. Dies ist die Art, wie ich es überprüfen habe:RegularExpressionValidation - gibt es eine bessere Möglichkeit, dies zu schreiben?

 protected void ddlLegalEntity_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (ddlLegalEntity.SelectedItem.Text == "FID") 
     { 
      RegularExpressionValidator1.ValidationExpression = "^[0-9]{5}(FID)$"; 
     } 
     else if (ddlLegalEntity.SelectedItem.Text == "FLM") 
     { 
      RegularExpressionValidator1.ValidationExpression = "^[0-9]{5}(FLM)$"; 
     } 
     else if (ddlLegalEntity.SelectedItem.Text == "FOF") 
     { 
      RegularExpressionValidator1.ValidationExpression = "^[0-9]{5}(FOF)$"; 
     } 

Und dann geht es weiter mit ein paar mehr anders, wenn .......

Also, wenn in ddlLegalEntity Sie die Wahl FLM wählen, dann Das Textfeld muss fünf Zahlen entsprechen, gefolgt von FLM.

Wie ...

13423FLM

56543FLM

Dieser Code funktioniert gut, aber ich fühle mich wie es muss ein einfacher Weg, dies zu codieren. vielleicht liege ich falsch, und das ist der einfachste Weg, aber ich bin nur neugierig.

+0

Das Muster für eine Regex ist eine Zeichenfolge. Also benutze @ "\ d {5}" + ddlLegalEntity.SelectedItem.Text – jdweng

Antwort

0

Vielleicht so etwas wie:

 protected void ddlLegalEntity_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    RegularExpressionValidator1.ValidationExpression = "^[0-9]{5}("+ddlLegalEntity.SelectedItem.Text+")$"; 
} 

und eine bessere Nutzung string.Format (string, params) für diese Zwecke;

 private static readonly string validationRegEx= "^[0-9]\{5\}({0})$"; 
     String.Format(validationRegEx, ddlLegalEntity.SelectedItem.Text); 
Verwandte Themen