正则表达式验证器无法正常工作

时间:2010-09-02 22:12:43

标签: c# asp.net regex

我有一个包含文本框和提交按钮的div标签。如果输入的文本是数字(整数或十进制),我试图只有提交按钮。但是,在运行调试器时,无论输入什么文本,都会调用onclick函数。知道我怎么搞砸了吗?

<div class="content">
<table class="inputForm">
  <tr>
   <th>Percentage:</th>
  <td>
   <asp:TextBox ID="VATAmount" runat="server"></asp:TextBox>
  </td>
  <td>
   <asp:LinkButton ID="VATSubmit" runat="server" SkinID="Button" OnClick="VAT_Click" Text="Submit"></asp:LinkButton>
  </td>
 </tr>
</table>
<i>50% should be entered as 50</i>                                    
  <cb:RequiredRegularExpressionValidator ID="VATVerify" runat="server" ControlToValidate="VATAmount" 
Display="Static" ErrorMessage="The Percent should be written as a decimal." Text="*" ValidationGroup="Add"
ValidationExpression="[*0-9]*\.[*0-9]" Required="true">
  </cb:RequiredRegularExpressionValidator>

另外我应该注意,*输入的值不正确时会出现*,但输入的值不正确时会出现

3 个答案:

答案 0 :(得分:0)

似乎正则表达式可能不正确。以下可能有用(我说可能是因为正则表达式在他们的失败方式中总是偷偷摸摸):

^[0-9]*\.?[0-9]+$

答案 1 :(得分:0)

尝试这样的事情:

^[0-9]+(?:\.[0-9]+)?$

答案 2 :(得分:0)

原始海报提供的正则表达式肯定是错误的,但我不确定这是真正的原因。由@Mark Wilkins提供的那个很棒。

我的猜测是你的验证根本没有开始。您可以尝试为LinkBut​​ton设置CausesValidation="True",看看是否有帮助。