我有一个TimeSpan
的自定义格式,例如@"hh\:mm\:ss\.fff"
,并希望使用xceed(https://wpftoolkit.codeplex.com/wikipage?title=MaskedTextBox&referringTitle=Home)中的MaskedTextBox
来帮助用户输入有效的时间跨度。
现在我将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获得另一种我还不知道的格式,这个解决方案看起来很难看并且无法维护。是否有更优雅的解决方案(例如使用正则表达式替换),用0
替换任何字母?
答案 0 :(得分: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");