C# ASP.Net:RegularExpressionValidator ValidationExpression以防止`;`和–;`一次
我想制作一个ASP.NetC# ASP.Net:RegularExpressionValidator ValidationExpression以防止`;`和–;`一次,c#,asp.net,regex,validation,C#,Asp.net,Regex,Validation,我想制作一个ASP.NetRegularExpressionValidatorValidationExpression,它将阻止输入和–- 我可以为–执行,它是验证表达式=“[^-]*” 上述表达式可以阻止单个–字符。我将为单个–字符授予权限。我将阻止双字符(--)。 我需要防止和– 有人能帮我吗?正则表达式需要变得更智能。您要阻止多个连字符、m-破折号和分号 因此,请尝试@“^(?=[^–;]*)((?!--)*$” 细分: ^匹配行的开头,并帮助确保使用验证器匹配整个字符串 第一组括号中
RegularExpressionValidator
ValidationExpression
,它将阻止输入代码>和–-
我可以为–
执行,它是验证表达式=“[^-]*”
上述表达式可以阻止单个–字符。我将为单个–字符授予权限。我将阻止双字符(--
)。
我需要防止一次编码>和–
有人能帮我吗?正则表达式需要变得更智能。您要阻止多个连字符、m-破折号和分号
因此,请尝试@“^(?=[^–;]*)((?!--)*$”
细分:
^
匹配行的开头,并帮助确保使用验证器匹配整个字符串
第一组括号中的表达式将匹配任何不包含m-破折号和分号的字符集。您可能希望使用转义序列将十六进制值替换为m-破折号。使用?=
将其定义为非消耗,这意味着正则表达式引擎必须匹配此模式,但在找到匹配项时不会提前其索引,因此也将为下一个模式测试相同的字符集
第二组括号中的表达式是反向前瞻;它将匹配不包含两个(或更多)相邻连字符的任何字符集。然而,这可能有点慢;这个正则表达式基本上迫使ReEX引擎一次考虑每个字符,从该点向前看,以确保下一个字符不会与逆模式匹配。
尾随的$
标记一行的结束;它与^
一起确保您在确定匹配时查看单个字符串(或多行数据中的行)中的所有内容
将它插入一个类似Regex的测试程序中,并使用它来确保它将停止所有您想要的场景
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
runat="server"
ControlToValidate="TextBox1" Display="Dynamic" ErrorMessage="**"
ValidationExpression="[^-]*"></asp:RegularExpressionValidator>