JavaScript 中的不区分大小写匹配

3
我有这个表达式:match('(\.jpg|\.jpeg|\.png|\.gif)$') 我该如何匹配JPG,Jpg,jPG等文件?
3个回答

6
下一个正则表达式将像 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,否则返回false

  • / - 正则表达式的开始
  • .+ - 匹配一个或多个字符,例如在file.ext中匹配file
  • \. - 匹配一个字面上的点
  • (jpg|jpeg|png|gif) - 匹配jpgjpegpnggif
  • $ - 标记文件名的结尾
  • / - 匹配正则表达式的结尾
  • i - 忽略大小写

另请参阅http://www.regular-expressions.info/javascript.html


4
您需要添加 i 标志来标记为不区分大小写:

match(/.../i)

2
你需要指定i修饰符
/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)

查看在 gskinner 上的 示例

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