用零填充字母数字文本框文本

时间:2013-12-04 05:27:12

标签: c#

textbox仅包含我使用padleft方法的数字时,此处我的textbox包含字母数字文本,为此我需要使用零填充。

textBox1.Text = textBox1.Text.PadLeft(5, '0');

textbox包含1.output为00001的数字时,此行有效。 现在,如果我在文本框中的文本是A1.output应该是A00001。 如果AB1输出应为AB00001。 位数应为5

2 个答案:

答案 0 :(得分:1)

您可以使用RegEx

var parts = Regex.Split(textBox1.Text, "(\\d+)");
textBox1.Text = parts.Length<2 ? parts[0] : parts[0] + parts[1].PadLeft(5, '0');

更新:如果您不想使用Regex,可以尝试以下代码:

int i = 0;
for(;i < textBox1.TextLength; i++){
  if(char.IsDigit(textBox1.Text[i])) break;
}
textBox1.Text = textBox1.Text.Substring(0,i) + 
                textBox1.Text.Substring(i).PadLeft(5,'0');

答案 1 :(得分:0)

您可以使用此代码。我以为你想要从数字中分割字母。如果您只有数字或数字,它也会起作用。

string input = "A1";

var match = Regex.Match(input, @"([a-zA-Z]*)(\d*)");

string group1 = match.Groups.Count > 1 ? match.Groups[1].Value : "";
string group2 = match.Groups.Count > 2 ? match.Groups[2].Value : "";

string output = group1 + group2.PadLeft(6 - group1.Length - group2.Length, '0');