正则表达式验证器在asp.net中不起作用

本文关键字:net 不起作用 asp 验证 正则表达式 | 更新日期: 2023-09-27 17:50:50

我想设置一个文本框的MaxLength属性与多行在asp.net(例如100个字符)。我不想使用javascript解决方案。我用过:

<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
    <title></title>
  </head>
  <body>
    <form id="form1" runat="server">
    <div>                        
      <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1" SetFocusOnError="true" ValidationExpression="^[a-zA-Z.]{0,100}$"></asp:RegularExpressionValidator>
      <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Height="109px" Width="274px"  ></asp:TextBox>
    </div>
   </form>
 </body>
</html>

和this:

<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
    <title></title>
  </head>
  <body>
   <form id="form1" runat="server">
    <div>                        
      <asp:RegularExpressionValidator ID="rgConclusionValidator2"                   ControlToValidate="TextBox1" ValidationExpression="^['s'S]{0,100}$" runat="server" SetFocusOnError="true" /></asp:RegularExpressionValidator>
      <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Height="109px" Width="274px"  ></asp:TextBox>
    </div>
   </form>
 </body>
</html>

,但没有一个工作。我测试了最新的ie, firefox, chrome, opera。谢谢。

正则表达式验证器在asp.net中不起作用

是工作,但是:

  1. Validators不会在运行中进行验证-因此它允许您输入任何内容,包括相当长的文本。它不像maxlength属性那样不允许输入超过100个字符。

  2. 您需要一些操作来启动验证。在大多数情况下,它是按钮,所以只需添加它:

    <asp:Button runat="server" Text="OK" />

  3. 您需要错误信息,如果验证失败将显示给用户-添加ErrorMessage属性到验证器:

    <asp:RegularExpressionValidator ... ErrorMessage="ERROR!" />

就是这样-键入文本,点击按钮,看到错误。

如果您想要动态地限制文本长度—那么您需要JavaScript,您可以在示例中看到这个问题:指定多行文本框的maxlength

使用这个JavaScript函数maxlength并在OnKeypress上调用它。

function checktextarea(textvalue,message,limit)
{
    var str="";
    var str=textvalue.value;
    if((str.length > limit ))
    {
        alert('Error : '+message + limit + ' characters'n'+ '          You entered text with Length '+str.length);
        textvalue.focus()
        return false;
    }
    else
    {
        return true;
    }
}