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+$
您可以试试这个。请参阅演示。
为负前瞻测试


在此处使用锚定
$

^[+-]?[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。这太奇怪了。