我有这个表达:match('(\.jpg|\.jpeg|\.png|\.gif)$')
我怎样才能匹配JPG,Jpg,jPG等?
答案 0 :(得分:6)
下一个RE会将file.GIF
和file.gif
等名称视为图像,但不会将.gif
或file.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)
- 匹配jpg
,jpeg
,png
或gif
$
标记文件名的结尾/
- 匹配RE的结尾i
- 我 gnore case 答案 1 :(得分:4)
您需要添加i
标记以将其标记为案例 - i nsensitive:
match(/.../i)
答案 2 :(得分:2)
/ 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)