【问题标题】:Issue with Regular Expression Validation正则表达式验证问题
【发布时间】:2014-03-17 04:52:51
【问题描述】:

我有一个 Asp.Net 脚本,其中包含这样的验证器:

<asp:RegularExpressionValidator ID="AdvNeedIdValidator" runat="server"
  ControlToValidate="NEEDS" ErrorMessage="Need ID is numeric."
  ForeColor="Red" ValidationExpression="^\d*\.?\d*$">*</asp:RegularExpressionValidator> 

验证器应该拒绝非数字输入(NEEDS 是一个数值),但我认为正则表达式 "^\d*\.?\d*$" 存在问题,因为当我想清除输入文本时,当用户输入短信ErrorMessage 弹出。我有一个带有 4 个数字值的 NeedID 字段,请告诉我如何升级 "^\d*\.?\d*$" 以摆脱该问题?

谢谢

【问题讨论】:

  • 老实说,我不是,但是当我从代码中删除验证器时,应用程序工作正常

标签: asp.net regex


【解决方案1】:

如果您只是想验证 4 位整数,请尝试使用以下方法:

^\d{4}$

^\d 表示以任意数字开头

{4} 表示必须正好有 4 个。

$ 表示模式结束。

换句话说,正则表达式验证和表达正好 4 位数字。

【讨论】:

  • 谢谢,但如何摆脱空间?我的意思是如何防止用户插入像这样的号码 4444 2222?
【解决方案2】:

如果您要验证数字,例如:

500.40
30
0.02
.02

这应该符合您的要求:

"\d*\.?\d+"

【讨论】:

  • 您好 user3320441,感谢您的回复,我所拥有的是一个 4 位数的整数。所以我不想有 500.40 或 .02 甚至 30 之类的东西!我需要的是 5555 或 3333 之类的东西。一个四位数的整数(xxxx)。你能告诉我如何更新你的表达方式以只接受吗?
  • @Behseini 如果您不希望数字中有任何小数点,您的正则表达式应该只是 "\d+""[0-9]+"
  • @adback03 谢谢,但如何将字符大小限制为 4?
  • @Behseini 请参阅上面的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
相关资源
最近更新 更多