C# 如何防止第一个字符是数字

C# 如何防止第一个字符是数字,c#,C#,我有一个文本框控件,允许用户只输入字母或数字: private void tbTableName_TextChanged(object sender, EventArgs e) { tbTableName.Text = string.Concat(tbTableName.Text.Where(char.IsLetterOrDigit)); if (tbTableName.Text.Length > 0)

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

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表单。

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

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

您只需修改此行:

if (tbTableName.Text.Length > 0)
致:


为什么不使用正则表达式

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


btnConvert.Enabled=System.Text.RegularExpressions.Regex.IsMatch(输入“^[a-zA-Z][a-zA-Z0-9]+$”

检查
tbTableName.Text[i]
有什么困难?我得到的索引超出了数组错误的范围。@SiKni8-编辑了我的答案。您必须先检查
tbTableName
是否包含一些文本,然后才能尝试访问它的任何项目。不确定为什么是否决票。我投了赞成票,到时候会接受的。让我说:)谢谢。刚刚也接受了你的编辑。删除了ToString,因为它不需要。tbTableName.Text已经是字符串。用户只能输入字母和数字,但第一个字符不能是数字。。。这样就可以了吗?如果第一个数字是一个数字,我希望它删除它。谢谢你的回答。
if (tbTableName.Text.Length > 0 && !Char.IsDigit(tbTableName.Text[0]))
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;
}