如何使正则表达式不区分大小写?

10

我有这段JavaScript代码,但当我发送这个字符串:asd.JPG,它无法通过正则表达式的验证。

if (data.match(/([^\/\\]+)\.(jpg|jpeg|gif|png|tiff|tif)$/i))
     return { filename: RegExp.$1, ext: RegExp.$2 };
else
     return { filename: "invalid file type", ext: null };

我希望正则表达式在匹配文件扩展名时不区分大小写。 我尝试了以下内容,但它并没有成功:

data.match(/([^\/\\]+)\.(?i)(jpg|jpeg|gif|png|tiff|tif)$/i)
任何想法?

2
你的代码对我有效:http://jsfiddle.net/fkling/ecThT/ 正则表达式末尾的 i 使其不区分大小写。 - Felix Kling
1
欢迎来到StackOverflow!当您提问时,在右侧有一个方便的“如何格式化”框。值得一读,就像问题区域上方的**[?]链接**所示。 (在这种情况下,我已经为您修复了它。) - T.J. Crowder
1
你能澄清一下你所说的“失败”是什么意思吗?你得到了哪些错误的输出?你得到了什么输出,又期望得到什么输出? - Dancrumb
@T.J.Crowder:请检查原问题的源代码,它就在那里。 - Felix Kling
@T.J.Crowder:是的,我也注意到了,已经修改了我的评论 ;) - Felix Kling
显示剩余5条评论
1个回答

37

您在末尾加上的i标志(/.../i)应该就可以实现。

(因为这种事情不应该让人通过获得声望来受益,所以CW... :-) )


因为该网站格式化了我的反斜杠 - 所以我从这里获取了此函数:http://lawrence.ecorp.net/inet/samples/regexp-parse.php,在最后面有该函数。 - Nir
@user:格式化的工作由你来完成。我们都是程序员,这应该不难。请查看我在问题评论中提供的链接。 - T.J. Crowder
这很奇怪,现在它可以工作了。而且我什么都没做 =D 你不喜欢这种“我什么都没做”的感觉吗?=]] - Nir
2
为什么有些人不能因为这样的事情获得声望?我认为他们应该,因为这个网站的整个重点就是提出有助于他人的问题。如果某人的问题帮助你找到了答案,你应该给他声望。 - Shawn Vader

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