Regex 正则表达式不应与null或空格匹配
我发现了一些应该回答我问题的东西: 然而,这个答案对我来说并不适用。我试图找到非零、正或负整数。我使用:Regex 正则表达式不应与null或空格匹配,regex,validation,requiredfieldvalidator,Regex,Validation,Requiredfieldvalidator,我发现了一些应该回答我问题的东西: 然而,这个答案对我来说并不适用。我试图找到非零、正或负整数。我使用: ^-?[1-9][0-9]* 它可以正常工作,除非是空的或带有空格。我试过: ^-?[1-9][0-9]*\ {0,0}$ 这不起作用。有什么想法吗 ^[+-]?(?!0$)\d+$ 您可以试试这个。请参阅演示。为负前瞻测试 在此处使用锚定$: ^[+-]?[1-9][0-9]*$ 即: ^-行开始 [+-]?-可选+或- [1-9]-介于1到9之间的数字 [0-9]*-0或更多
^-?[1-9][0-9]*
它可以正常工作,除非是空的或带有空格。我试过:
^-?[1-9][0-9]*\ {0,0}$
这不起作用。有什么想法吗
^[+-]?(?!0$)\d+$
您可以试试这个。请参阅演示。如果字符串不是0,则代码>为负前瞻测试
在此处使用锚定$
:
^[+-]?[1-9][0-9]*$
即:
^
-行开始
[+-]?
-可选+
或-
[1-9]
-介于1到9之间的数字
[0-9]*
-0或更多数字列表
$
-输入结束
事实证明,这是因为RegressionExpressionValidator不是为检查空格或空白而设计的,所以您还需要RequiredFieldValidator
现在我必须弄清楚为什么Display=Dynamic不能完成这项工作…@anubhava不行。只是没有读取整数和其他东西。这在你没有的地方使用了负前瞻。我尝试了以下方法:^[+-]?[1-9][0-9]*$这不起作用。向前看(或向后看,我认为这是)似乎测试数字0后面没有数字。这似乎不能解决我的问题。我想知道,这可能是因为这是asp.net RegularExpressionValidation控件的一部分吗?我尝试了另一种方法。我在文本框上放置了两个验证服务器控件。RequiredFieldValidator和RegularExpressionValidator,两者都使用Display=Dynamic。这里的问题是,只有第一个出现过。如果我把RequiredField放在第一位,它会在适当的时候显示错误消息。但RegEx从不显示。反之亦然。现在,我不确定我该走哪条路。RegularExpressionValidator是否可能永远不会测试null,即使你说,所以RequiredFieldValidator是有目的的?听起来比计算机科学更具哲理……我尝试了我能想象到的最基本的正则表达式,只是检查以确保没有空格或空:^\s+$这永远不会起作用。我开始认为RegularExpressionValidator不会让我检查空格或null。这太奇怪了。