【发布时间】:2013-09-22 07:45:09
【问题描述】:
我正在使用可用于运行 .NET 4.5 的站点的“新”数字文本框模式,并且我正在尝试使用 asp.net 验证控件来验证用户输入。我可以使用以下 REGEX 表达式验证所选数字是否在指定范围 (1-254) 内:
^([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|2[5][0-6])$
此表达式还应验证输入是否为数值且不包含字符。出于某种原因,该范围的验证工作正常,但如果我输入 "A" 或任何其他字符串,它将返回有效。
如果我从文本框中删除 TextMode="Number" 属性,一切都会正常运行。有没有其他人遇到过这个错误?
如果我在忽略新文本框文本模式的旧浏览器中访问该站点,则验证可以正常工作。
【问题讨论】:
-
不要使用正则表达式来验证范围内的数字。非常难读。
-
您是否尝试过范围验证器?
-
我使用了范围验证器,但遇到了同样的问题,它不会使字母无效。我认为通过切换到 REGEX 可能会解决问题,但似乎并非如此。我完全可以切换回范围验证器,但这会给我留下同样的问题。
-
你不能验证它是一个数字并验证它在范围内吗?一个输入上的两个验证器是可能的,是吗?例如,在过去,我在验证电子邮件时必须使用“必需”和正则表达式验证器进行验证。
-
这可能是一个选项,我想现在我只是坚持使用旧的文本框模式,因为并非所有浏览器都支持新模式。
标签: asp.net .net regex validation