2014-01-08 2 views
0

나는 @"hh\:mm\:ss\.fff"과 같은 사용자 지정 형식의 TimeSpan을 가지고 있으며 유효한 시간 간격을 입력하는 데 xceed (https://wpftoolkit.codeplex.com/wikipage?title=MaskedTextBox&referringTitle=Home)의 MaskedTextBox을 사용하려고합니다. TimeSpan 형식 문자열을 InputMask로 변환

는 지금은은 formatString 내가 아직 모르는 다른 형식을 얻는 경우에이 솔루션은 추한 및 유지 보수하지 보이는이

public string InputMask 
{ 
    get 
    { 
    string mask = FormatString.Replace('h', '0'); 
    mask = mask.Replace('m', '0'); 
    mask = mask.Replace('s', '0'); 
    mask = mask.Replace('f', '0'); 
    mask = mask.Replace('d', '0'); 
    return mask; 
    } 
} 

같은 입력 마스크에 FormatString -Property을 변환합니다. 어떤 문자가 0으로 바뀌는 좀 더 세련된 솔루션 (예 : 정규식 대체)이 있습니까?

+0

을 [이] (http://stackoverflow.com/questions/9975640/check-if-char-isletter)? 마스크 (i) = '0'; ' – Sinatr

+0

(char.IsLetter (mask [i]))이 작동하지 않는다면 for (int i = 0; i Herm

+0

그런 다음 stackoverflow에 와서 여기 내 질문에 게시 D = – Sinatr

답변

2

이 트릭을 수행해야합니다

//using System.Text.RegularExpressions; 

string input = @"hh\:mm\:ss\.fff"; //i suppose it's FormatString in your case, don't know the MaskedTextBox 
string output = Regex.Replace(input, "[a-zA-Z]","0");