ASP.. Net: RegularExpressionValidator ValidationExpression防止

本文关键字:ValidationExpression 防止 RegularExpressionValidator Net ASP | 更新日期: 2023-09-27 18:11:03

我想做一个ASP。阻止;–-输入的净RegularExpressionValidatorValidationExpression

我可以为做,它是ValidationExpression="[^-]*"

<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
      runat="server" 
      ControlToValidate="TextBox1" Display="Dynamic" ErrorMessage="**" 
      ValidationExpression="[^-]*"></asp:RegularExpressionValidator>

以上表达式可以防止单个字符。我将允许单个字符。我将阻止双字符(--)。我需要同时阻止;

有人能帮我吗?

ASP.. Net: RegularExpressionValidator ValidationExpression防止

Regex需要变得更聪明。您需要阻止多个连字符、m-破折号和分号。

那么试试@"^(?=[^–;]*)((?!--).)*$"

分解:

^匹配一行的开头,并帮助确保验证器用于匹配整个字符串。

第一组括号中的表达式将匹配不包含m-破折号和分号的任何字符集。您可能希望使用'x2014转义序列替换m-破折号的十六进制值。它被定义为非消耗?=,这意味着Regex引擎必须匹配此模式,但在找到匹配时不会推进其索引,因此也将为下一个模式测试相同的一组字符。

第二组括号中的表达式是反向正向的;它将匹配不包含两个(或更多)相邻连字符的任何字符集。然而,这可能有点慢;这个regex基本上迫使regex引擎一次一个地考虑每个字符,从那个点开始向前看,以确保下一个字符不会与相反的模式匹配。

后面的$标志着一行的结束;与^一起,它确保您在确定匹配时查看单个字符串(或多行数据中的行)中的所有内容。

把它插入到一个像Derek Slater的Regex测试器中,并尝试一下,以确保它会停止所有你想要的场景。

相关文章:
  • 没有找到相关文章