如何防止第一个字符成为数字

时间:2014-06-05 19:05:01

标签: c#

我有一个文本框控件,允许用户只输入字母或数字:

private void tbTableName_TextChanged(object sender, EventArgs e)
        {
            tbTableName.Text = string.Concat(tbTableName.Text.Where(char.IsLetterOrDigit));
            if (tbTableName.Text.Length > 0)
            {
                btnConvert.Enabled = true;
            }
            else
            {
                btnConvert.Enabled = false;
            }
        }

如何修改以使第一个字符不能是数字,只能是字母,然后可以添加任意数量的数字?

我有一个WinForm,而不是Web表单。

4 个答案:

答案 0 :(得分:1)

您只需修改此行:

if (tbTableName.Text.Length > 0)

为:

if (tbTableName.Text.Length > 0 && !Char.IsDigit(tbTableName.Text[0]))

答案 1 :(得分:1)

为什么不使用正则表达式?

我编辑正则表达式以允许用户在第一个数字后添加数字或字母

btnConvert.Enabled = System.Text.RegularExpressions.Regex.IsMatch(input, "^[a-zA-Z][a-zA-Z0-9 ]+$");

答案 2 :(得分:1)

private void tbTableName_TextChanged(object sender, EventArgs e)
{
    string name = Regex.Replace(tbTableName.Text, @"^\d+|\W", string.Empty);
    btnConvert.Enabled = name.Length > 0;
    tbTableName.Text = name;
}

答案 3 :(得分:0)

你可以删除第一个字符,如果它是一个数字:

if (tbTableName.Text.Length > 0 && char.IsNumber(tbTableName.Text[0]))
    tbTableName.Text = tbTableName.Text.Substring(1);