public static string ConvertMask(string text)
{
if(text == null)
throw new ArgumentNullException("text");
var maskConv = new StringBuilder();
var qtdmask = new StringBuilder();
var maskchar = String.Empty;
var i = 0;
for(i = 0; i < text.Length; i++) {
if(_charsEditMask.IndexOf(text.Substring(i, 1), StringComparison.Ordinal) != -1) {
if(qtdmask.Length == 0) {
maskConv.Append(text.Substring(i, 1));
qtdmask.Length = 0;
maskchar = text.Substring(i, 1);
} else if(text.Substring(i, 1) == "9")
qtdmask.Append("9");
else if(text.Substring(i, 1) == "0")
qtdmask.Append("0");
} else if(_charsEditMask.IndexOf(text.Substring(i, 1), StringComparison.Ordinal) == -1 && text.Substring(i, 1) != "{" && text.Substring(i, 1) != "}") {
if(qtdmask.Length == 0) {
maskConv.Append(text.Substring(i, 1));
qtdmask.Length = 0;
maskchar = String.Empty;
} else {
if(_charNumbers.IndexOf(text.Substring(i, 1), StringComparison.Ordinal) != -1)
qtdmask.Append(text.Substring(i, 1));
}
} else if(text.Substring(i, 1) == "{" && qtdmask.Length == 0) {
qtdmask.Length = 0;
qtdmask.Append("0");
} else if(text.Substring(i, 1) == "}" && qtdmask.Length != 0) {
var qtddup = int.Parse(qtdmask.ToString(), CultureInfo.InvariantCulture) - 1;
if(qtddup > 0) {
var q = 0;
for(q = 0; q < qtddup; q++) {
maskConv.Append(maskchar);
}
}
qtdmask.Length = 0;
qtdmask.Append("0");
maskchar = String.Empty;
}
}
return maskConv.ToString();
}