2016-06-18 16 views
0

私は、ドロップダウンリストで選択されたものと一致する3つの文字のあとに5つの数字である必要があるというテキストボックスを持っています。これは私がそれをチェック抱えている方法です:RegularExpressionValidation - これを書く良い方法はありますか?

 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)$"; 
     } 

そして、それがあれば、他のいくつかの詳細を続行.......

のでddlLegalEntityにあなたが選択FLMを選択した場合、その後、テキストボックスはFLMに続く5つの数字に等しくなければなりません。

このような

13423FLM

56543FLM

...としては、このコードは正常に動作しますが、これをコーディングする簡単な方法がなければならないような気がします。多分私は間違っている、これは最も簡単な方法ですが、私はちょうど興味があります。

+0

正規表現のパターンは文字列です。ですので、@ "\ d {5}" + ddlLegalEntity.SelectedItem.Text – jdweng

答えて

0

多分何かのように:この目的のために

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

、より良い使用String.Formatの(文字列、のparams);

 private static readonly string validationRegEx= "^[0-9]\{5\}({0})$"; 
     String.Format(validationRegEx, ddlLegalEntity.SelectedItem.Text); 
関連する問題