c#3.5文本框验证

时间:2011-02-17 11:34:49

标签: c# .net asp.net

我正在使用C#3.5,我的项目有问题,我想制作一个文本框只接受数字。如果用户尝试输入字符,则应显示“请仅输入数字”的消息,而在另一个文本框中,它必须接受有效的电子邮件ID消息,如果该消息无效则应显示。它必须显示无效的用户ID。

6 个答案:

答案 0 :(得分:1)

您可以使用验证控制然后使用正则表达式。对于数字,您可以使用CompareValidator

<asp:CompareValidator ID="CompareValidator1" runat="server" 
 ErrorMessage="CompareValidator" Operator="DataTypeCheck"   Type="Integer"></asp:CompareValidator>


      和电子邮件RegularExpressionValidator
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>

答案 1 :(得分:1)

function onlyNumbers(evt)
{    
  var e = event || evt; 
// for trans-browser compatibility    
  var charCode = e.which || e.keyCode;    
  if (charCode > 31 && (charCode < 48 || charCode > 57))        
      return false;    
  return true;
}

使用上面的函数并将其应用于文本框的onkeypress事件,上面是一个javascript,而对于另一个文本框,使用必需字段验证器它将起作用。希望这会对你有所帮助。

答案 2 :(得分:1)

对于“仅限数字”验证,您可以使用CompareValidator

中的Operator="DataTypeCheck"
<asp:CompareValidator runat="server" ErrorMessage="Only numbers" 
Type="Integer" ControlToValidate="YourOnlyNumbersTextBoxID" Operator="DataTypeCheck"/>

对于“电子邮件”验证,您最好使用RegularExpressionValidator

<asp:RegularExpressionValidator runat="server" ErrorMessage="Invalid email"
ControlToValidate="YourEmailTextBoxID" ValidationExpression="[regex here]"/>

答案 3 :(得分:0)

在这两种情况下,您需要在按钮的事件处理程序中定义验证例程(我假设有某种按钮)。

还有其他方法可以实现这一目标,但这是最简单的。

答案 4 :(得分:0)

通常在这种情况下,你可以使用KeyDown事件,如果按下的键不是数字,则取消它。我不会向用户显示警告,他/她会看到只接受号码。

答案 5 :(得分:0)

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress);
    }

    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = !char.IsDigit(e.KeyChar);
    }

}