【问题标题】:Regex subtraction not implemented in asp.net RegularExpressionValidator class?正则表达式减法未在 asp.net RegularExpressionValidator 类中实现?
【发布时间】:2012-09-10 13:03:42
【问题描述】:

在 ASP.NET RegularExpressionValidator 类中没有实现正则表达式类减法吗?我一直在努力让一个相当复杂的正则表达式工作,并追踪到这样一个事实,即类减法似乎没有在 ASP.NET 验证器中实现,而是在 Regex 类中。

例如:创建一个带有文本框和该文本框验证器的页面。为验证器提供以下 ValidationExpression:[1-4][0-9-[5]]。无论我输入什么,它都不匹配。将其更改为 [1-4][0-9] 并匹配,但不排除 5 作为第二个数字,根据需要。

谢谢

【问题讨论】:

  • 当我使用[1-4][0-9-[5]] 时,我在11 上得到了匹配,而在1543 等上没有匹配...验证器使用普通的.NET Regex 引擎。跨度>
  • 您使用的是什么版本的 .NET 框架,Oded?顺便说一句,43 应该匹配!
  • 哎呀。错字。那应该是63...

标签: c# regex subtraction


【解决方案1】:

问题似乎是由于使用了javascript正则表达式(可以关闭),请参阅regularexpressionvalidator-use-other-flavor-than-regex

继续阅读建议的解决方法。

【讨论】:

    【解决方案2】:

    你试过[1-4]([0-4]|[6-9])吗?

    【讨论】:

    • 我有,这是我的工作。幸运的是,我只是想排除一两个数字,而不是一组字母等。我给出的例子是对我正在做的事情的一个很大的简化,但想法就在那里。谢谢!
    • 为什么字符类中有|?您发布的内容将匹配 2|
    • 感谢@Oded 指出这一点。我已经更正了答案。
    • @VincePanuccio,无需替换,只需从类中删除|,就像这样[1-4][0-46-9]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多