【问题标题】:ASP.net textbox Validation issueASP.net 文本框验证问题
【发布时间】:2012-07-03 21:44:11
【问题描述】:

我在 ASP.net 文本框控件上有一个正则表达式,用于验证用户输入,它应该只是 6 到 200 个字符内的字母和数字 这是我的代码

<asp:TextBox ID="txtCategory_description" runat="server" Style="width: 485px;" Height="70px"
                                                            TextMode="MultiLine"></asp:TextBox>
                                                    <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ErrorMessage="Invalid Category name"
                                                            ValidationExpression="^[a-zA-Z0-9._-]{6,200}$" ControlToValidate="txtCategory_description"
                                                            Display="None"></asp:RegularExpressionValidator>

问题是我在文本框中写了任何类似的 HTML 代码接受它并将我发送到错误页面 谁能帮帮我??

注意:在我的页面上我还有另一个正则表达式,如果我把它们都写错了,那个正则表达式也很好用,如果只是一个错误的,就会出现问题

【问题讨论】:

  • ^[a-zA-Z0-9._-]{6,15}$ 描述的是 6 到 15 个字符的字段,而不是文本中的 6 到 200 个字符的字段

标签: html validation asp.net-4.0


【解决方案1】:

^([\-a-zA-Z0-9\._]){6,200}$

正如@user1428799 所说,您需要的是 200,而不是 15。

应该这样做。如果我错了,请纠正我,但连字符需要放在前面(紧跟在 [ 之后,否则它被视为范围字符。

编辑 您也可以直接转义它,因为您可能也必须对点进行转义。

【讨论】:

  • 问题不在于使用的字符数,而在于当我将 作为文本框的输入时,无法验证 HTML 脚本注入,这是它的结果:一个潜在危险的请求。从客户端检测到表单值 (ctl00$ctl00$ContentPlaceHolder1$AddSubCategories$txtCategory_description="")。
猜你喜欢
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 2013-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多