2011-01-28 100 views
3

有人能告訴我如何接受一個字符串並運行一個函數來檢查特定類型的文件(比如「.pdf」)。如果字符串包含文件,則需要將「pdf」類應用於包含該鏈接的錨點。如何在包含特定文件擴展名的超鏈接中添加類?

下面是一個字符串的例子:

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

我想它改成這樣:

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

回答

8

在CSS中這樣做:

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

但這可能不被某些瀏覽器支持。

另外,這樣做在Javascript中,使用jQuery或任何庫:

$('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'; 
    } 
} 
+0

感謝您的回覆。這些都是很好的解決方案,但是它需要在IE6/7中支持(所以沒有CSS),我希望能夠在沒有任何JS的情況下完成此任務,因此使用服務器端代碼來應用它 - 我只是不與PHP很好。 ;) – Cofey 2011-01-28 16:47:12

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

相關問題