只是为了给予一个想法,我想做的是这里的一个示例代码:
$(function(){
if ($('.maybe > div > a.link:contains(".JPG, .jpg, .gif, .GIF")').length) {
alert('hello');
});
我想检查一些链接的内容是否包含所有图像扩展名的点和字母,如
<div class="maybe">
<div>
<a class="link" href="someURL">thisIsAnImage.jpg</a>
<a class="link" href="someURL">thisIs**NOT**AnImage.pdf</a>
</div>
</div>
<div class="maybe">
<div>
<a class="link" href="someURL">thisIs**NOT**AnImage.zip</a>
<a class="link" href="someURL">thisIsAnotherImage.png</a>
</div>
</div>
div和链接是由php动态生成的,所以没有办法知道页面生成后会有多少链接和div。
如何正确地编写代码?
非常感谢你帮我解决了这个问题。
3条答案
按热度按时间jckbn6z71#
这是我的第一直觉:
在链接文本上使用toLowerCase(),这样就不必同时检查大小写。然后使用String。match(regex)与regex组匹配所有文件扩展名。
希望这有帮助!
编辑:这里有一个jsfiddle的例子。打开JavaScript控制台以查看控制台的输出。log语句。http://jsfiddle.net/9Q5yu/1/
fjaof16o2#
我建议
以上是一个比较简单的、幼稚的检查;因为它简单地将href拆分为
.
字符,然后测试数组中的最后一个元素(由split()
返回)是否等于数组中的一个元素。对于具有查询字符串的任何图像,此操作都将失败,例如http://example.com/image2.png?postValue=1234
鉴于评论中的澄清,我将上述内容修改为:
参考文献:
Array.prototype.indexOf()
.)RegExp.prototype.test()
](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/testString.prototype.split()
。filter()
6vl6ewon3#