如何在包含特定文件扩展名的超链接中添加类?

时间:2011-01-28 16:40:01

标签: php javascript jquery css regex

有人可以告诉我如何取一个字符串并对其运行一个函数来检查特定类型的文件(例如“.pdf”)。如果字符串包含该文件,则需要将“pdf”类应用于包含该链接的锚点。

以下是字符串示例:

<a href="/downloads/myfile.pdf">My PDF</a>

我希望将其更改为:

<a href="/downloads/myfile.pdf" class="pdf">My PDF</a>

2 个答案:

答案 0 :(得分:8)

在CSS中执行此操作:

a[href$=".pdf"] {
   /* some rules */
}

但某些浏览器可能不支持此功能。

或者,使用jQuery或任何库在Javascript中执行此操作:

$('a[href$=".pdf"]').addClass('pdf'); // in jQuery

或没有图书馆:

var elems = document.getElementByTagName('a');
for (var i = 0; i  < elems.length; ++i) {
    var a = elems[i];
    if (/\.pdf$/.test(a.href)) {
        a.className = 'pdf';
    }
}

答案 1 :(得分:0)

(<a\s+href="[^"]*\.([A-Za-z0-9]{2,5})\s*")([^>]*>) 替换为 \1 class="\2" \3

python代码:

import re,sys
file = sys.argv[1]
f = open(file, 'r')
text = f.read()
f.close()
text = re.sub(r'(<a\s+href="[^"]*\.([A-Za-z0-9]{2,5})\s*")([^>]*>)', r'\1 class="\2" \3', te$
f = open(file+'.re','w')
f.write(text)
f.close()

可以用它来修改html static