我有一个文本框控件,允许用户只输入字母或数字:
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表单。
答案 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);