Javascript中不区分大小写的匹配项

时间:2011-06-19 14:54:38

标签: javascript jquery regex string

我有这个表达:match('(\.jpg|\.jpeg|\.png|\.gif)$')

我怎样才能匹配JPG,Jpg,jPG等?

3 个答案:

答案 0 :(得分:6)

下一个RE会将file.GIFfile.gif等名称视为图像,但不会将.giffile.htm视为

var file = "image.png";
if (/.+\.(jpg|jpeg|png|gif)$/i.test(file)) {
    alert("The file is an image")
}

/.+\.(jpg|jpeg|png|gif)$/i是正则表达式,regex.test(string)如果匹配true则返回string,否则返回false

  • / - RE的开始
  • .+ - 匹配一个或多个字符,例如file
  • 中的file.ext
  • \. - 匹配文字点
  • (jpg|jpeg|png|gif) - 匹配jpgjpegpnggif
  • $标记文件名的结尾
  • / - 匹配RE的结尾
  • i - gnore case

另见http://www.regular-expressions.info/javascript.html

答案 1 :(得分:4)

您需要添加i标记以将其标记为案例 - i nsensitive:

match(/.../i)

答案 2 :(得分:2)

您需要to specify i modifier

  

/ i使正则表达式匹配不区分大小写。

因此,给定任何以这些扩展名结尾的字符串,无论字母大小写如何都会匹配。

给出以下字符串:“。jPg”

/\.(jpe?g|gif|png)$/i       // matches
/\.(jpe?g|gif|png)$/        // doesn't match
/.+\.(jpe?g|gif|png)$/i     // doesn't match (requires filename)

查看example on gskinner