RegularExpressionValidator在ASP.NET中不起作用

时间:2017-05-15 21:16:04

标签: asp.net

我的RegularExpressValidator1没有开火。不确定下面缺少什么。有什么建议吗?

<td class="txtbox1"><asp:TextBox ID="txtCard" runat="server" ></asp:TextBox>
                          <asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
                               ControlToValidate="txtCard" 
                               Forecolor="Red"
                               ValidationExpression="(0*[1-9]\d*)" runat="server" 
                               ErrorMessage = "Enter numeric number only.">
                          </asp:RegularExpressionValidator>
                     </td>

1 个答案:

答案 0 :(得分:0)

仔细查看Microsoft的页面How To: Use Regular Expressions to constrain input in ASP.Net

  

将表达式括在插入符号(^)和美元符号($)标记中可确保表达式包含所需内容而不包含任何其他内容。 A ^匹配输入字符串开头的位置,$匹配输入字符串末尾的位置。如果您省略这些标记,攻击者可能会将恶意输入附加到有效内容的开头或结尾,并绕过您的过滤器。

如果向下滚动到标题为公共正则表达式的部分,则它包含正整数的RegEx:

.instagram-section {
    text-align: right;
    font-family: 'Life Savers', cursive;
    font-size: 1em;
}

.instagram-section a img.ig-logo{
    height: 25px;
    display: inline;
}

他们的模式限制输入数字,而你的模式似乎只是检查是否以任何方式包含数字。

举个例子,考虑一下这个输入:

^\d+$

使用1234 and text! (Source)

^\d+$

使用0 matches (Source)

(0*[1-9]\d*)

作为一个不相关的说明,我建议您从修改占位符文字&#34;仅输入数字。&#34; 类似&#34;输入一个数字&#34; &#34;输入一个数字值&#34; ,作为&#34;数字编号&​​#34;有点多余!