如何在正则表达式中忽略大小写?

13

我有一个ASP.NET RegularExpressionValidator,用于检查文件扩展名。有没有快速的方法可以告诉它忽略扩展名的大小写,而无需在验证表达式中显式添加大写变量?

ValidationExpression="([^.]+[.](jpg|jpeg|gif|png|wpf|doc|docx|xls|xlsx ... 

1
你可以在正则表达式中消除一些重复:(jpe?g|gif|png|wpf|docx?|xlsx? ... - PEZ
3个回答

24
在服务器端,可以使用"(?i)",但客户端不起作用。请参阅此处获取更多讨论和解决方法。
即"…(?i)(jpg|jpeg|gif|png|wpf|..."。

1
我无法访问那个链接。实际上,我得到了一个403.6的错误代码... 我应该担心吗? - PEZ
@PEZ:重试了一下,运行良好...但还有很多其他的 - 只需搜索+RegularExpressionValidator +IgnoreCase即可。 - Marc Gravell
我已经尝试过了,没有帮助。看起来服务器确实对我的IP有问题! - PEZ
这个答案中的链接现在已经失效了。如果有人有一个好的链接可以替换它,请这样做! - Highly Irregular

2
在VisualBasic.NET中,您可以使用RegExOptions来忽略大小写:
Dim RegexObj As New Regex("([^.]+[.](jpg|jpeg|gif))", RegexOptions.IgnoreCase)

是的,抱歉,我看得太晚了。我应该更仔细地阅读问题。 - Sebastian Dietz

1
根据正则表达式选项,这应该可以工作:
// Added LowerCase i:
ValidationExpression="(?i:[^.]+[.](jpg|jpeg|gif|png|wpf|doc|docx|xls|xlsx ...

只要它在服务器端,我认为它可以工作,但在客户端可能不行。 - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接