如何不允许用户在文本框中输入数字

时间:2017-03-03 15:23:03

标签: c# asp.net validation textbox

我正在尝试制作一个不允许输入数字的文本框

我尝试了一些代码,但没有工作

以下是我的尝试:

<asp:RegularExpressionValidator runat="server" ID="txtSurnameValidation" 
     ControlToValidate="txtSurname" ValidationExpression="[a-zA-Z ]*$" Display="Dynamic">
</asp:RegularExpressionValidator>

2 个答案:

答案 0 :(得分:3)

它的工作但它没有显示任何消息,因为你没有设置任何消息,如果验证失败,所以添加ErrorMessage="* Alphabets Only",这样如果有人输入数字,它将显示此消息

 <asp:TextBox runat="server" ID="txtSurname"></asp:TextBox>
        <asp:RegularExpressionValidator runat="server" ID="txtSurnameValidation" 
     ControlToValidate="txtSurname" ValidationExpression="[a-zA-Z ]*$" ErrorMessage="* Alphabets Only" Display="Dynamic">
</asp:RegularExpressionValidator>

答案 1 :(得分:0)

可能在这里回答:Prevent numbers from being pasted in textbox in .net windows forms

基本上,您可以点击TextChanged事件,不允许输入或粘贴数字。您也可以处理KeyDown和KeyUp事件,但它们不会保护您不会粘贴数字。因此,首选TextChanged并推荐使用。

string _latestValidText = string.Empty;
private void TextBox_TextChanged(object sender, EventArgs e)
{
    TextBox target = sender as TextBox;
    if (ContainsNumber(target.Text))
    {
        // display alert and reset text
        MessageBox.Show("The text may not contain any numbers.");
        target.Text = _latestValidText;
    }
    else
    {
        _latestValidText = target.Text;
    }
}
private static bool ContainsNumber(string input)
{
    return Regex.IsMatch(input, @"\d+");
}