我有以下正则表达式,用于ASP.NET RegularExpressionValidator
:
^ \ d *(\ d [0-9])?$
这个表达式可以完成我需要的一切,除了防止输入ONLY空格。它将输入限制为0,1或2位数字,并且不允许在数字内部或之后留出空格。它允许该字段为空白(根本没有输入)。
我想阻止用户只输入空格,因为我意识到有时用户会使用空格键而不是删除键来清除字段的值。
然而,由于某种原因,它只允许输入空格,几乎就像它认为空格(或空格)相当于空白字段(null)。我错过了什么?
编辑:将^字符添加到表达式的开头,在复制到此问题时错过了它。
答案 0 :(得分:0)
如果您只需要0到3位数,我建议您使用此数字
^\d*(\.\d{1,2})?$
这告诉我们从字符串的开头只能有0,1或2位数字而没有其他字符。你错过了我认为
字符串开头的检查编辑:
我在这里测试了你的正则表达式http://regex101.com/r/hC1dL6并且没有出现问题...我认为输入在到达正则表达式之前可能会被修剪掉。我建议你以这种方式进行测试。
<强> EDIT2 强>
来自here
字段验证器仅在字段中有内容时触发 验证。要检查字段是否包含数据和正确的日期,您需要 使用两个验证器。必需的字段验证器将确保这一点 输入数据,以及第二个验证器(例如正则表达式) 验证者)将确保输入的数据符合要求 格式。
建议使用两个验证器。
答案 1 :(得分:0)
你的新正则表达式:
^(|\d+(\.\d{1,2})?)$
说明:
^
设置起点锚点。它将使space
s无效。12.
,.12
^(?:|\d+(?:\.\d{1,2})?)$