AnA*_*ice 2 javascript regex jquery match
我有以下代码用于匹配fancybox可能的元素:
$('a.grouped_elements').each(function(){
var elem = $(this);
// Convert everything to lower case to match smart
if(elem.attr('href').toLowerCase().match('/gif|jpg|jpeg|png/') != null) {
elem.fancybox();
}
});
Run Code Online (Sandbox Code Playgroud)
它适用于JPG,但由于某些原因它不匹配PNG.有人看到代码的错误吗?谢谢
Anu*_*rag 11
有几件事.
Match接受一个对象RegExp,而不是一个字符串.它可能在某些浏览器中有效,但绝对不是标准的.
"gif".match('/gif|png|jpg/'); // null????????????????????????????
Run Code Online (Sandbox Code Playgroud)
没有字符串
"gif".match(/gif|png|jpg/); // ["gif"]
Run Code Online (Sandbox Code Playgroud)
此外,您需要在文件名末尾检查这些,而不是在字符串中的任何位置.
"isthisagif.nope".match(/(gif|png|jpg|jpeg)/); // ["gif", "gif"]
Run Code Online (Sandbox Code Playgroud)
只搜索带有$ suffix的字符串末尾
"isthisagif.nope".match(/(gif|png|jpg|jpeg)$/); // null
Run Code Online (Sandbox Code Playgroud)
无需使用href小写,只需进行不区分大小写的搜索/i.
在图像扩展名之前查找一个点作为附加检查.
还有一些测试.我不知道你是如何使用字符串参数得到任何结果的.match.你在用什么浏览器?