如何验证文本框输入

时间:2018-07-13 04:17:08

标签: c# asp.net

如果输入是“ A”,“ G”,“ C”,“ T”的数组,那么在C#(ASP.NET)中,isValid = false时,如何在自定义验证器中表达表达式?对于Windows窗体应用程序,我做到了,我需要类似的东西

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
  e.Handled = 
      char.IsLetter(e.KeyChar) && ((e.KeyChar == 65) || (e.KeyChar == 67) || 
                   (e.KeyChar == 71) || (e.KeyChar == 84) || (e.KeyChar == 97) || 
                   (e.KeyChar == 99) || (e.KeyChar == 103) || (e.KeyChar == 116)) ||
                   (e.KeyChar == 8) ? false : true;   
} 

为了验证,我有这个

protected void CustomValidator1_ServerValidate1(object source, ServerValidateEventArgs args)
    {
        Match validate = Regex.Match(TextBox1.ToString(), "[AGCT]");
        if (validate.Success)
            {
                args.IsValid = true;
            }
            else args.IsValid = false;
        }

1 个答案:

答案 0 :(得分:1)

没问题!

在ASP.Net中,您将使用Javascript处理此验证。因此,您的输入元素将被声明为:

@Html.TextBoxFor(m => m.MyField)

然后,您将使用Javascript通过处理keyup事件来执行验证。

e.preventDefault()等同于您在WinForms中处理的e。

document.getElementById('@Html.IdFor(m => m.MyField)').onkeyup = function (e) {
    if(~[65, 67, 71, 84, 97, 99, 103, 116, 8].indexOf(e.keyCode || e.which)) {
        e.preventDefault();
        return;
    }
};

祝你好运!