2011-10-09 12 views
1

我想編寫一個正則表達式,它將使鏈接不可點擊 - 只需刪除href html標記並將鏈接url作爲文本。所以它會忽略錨文本,如果它只給予離開的網址。使用正則表達式使鏈接不可用,除非來自特定域

但是,如果這些正則表達式不是來自某個域,這個正則表達式應該使鏈接不可用。我希望這是我的私人消息系統。

所以正則表達式將做以下

如果該鏈接不針對特定領域做鏈接URL文本。忽略給定的錨文本。

asp.net 4.0,C#4.0

<a href="http://www.monstermmorpg.com/" target="_blank">My domain</a> 

這會被解析爲http://www.monstermmorpg.com/這將是文本

+0

與所有的正則表達式相關的查詢,請郵寄樣本數據來進行測試,以及預期結果 –

+0

所以你的問題是.... –

+5

不要使用正則表達式來解析HTML。 [曾經](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454)! –

回答

2

像這樣的作品jQuery的:

$(document).ready(removeLink("domain.com")); 

function removeLink(domain) 
{ 
    $('a').each(function(){ 
     if($(this).attr("href")!=null) 
     if($(this).attr("href").indexOf(domain)>=0) 
      $(this).removeAttr("href"); 
}) 
} 

說明:

獲取呈現的HTML中的所有錨點元素,通過它們迭代並刪除超鏈接的href屬性,作爲其中包含domain.com的所有元素。

jsfiddle demo.

+0

實際上它會刪除所有期望給出的鏈接。 – MonsterMMORPG

+0

感謝您的評論。我解決了htmlagilitypack問題:)但jquery也可以工作。 – MonsterMMORPG

+0

@MonsterMMORPG我的「更新」有一個錯誤,顯然。 jsFiddle有時候它太慢了,你認爲它運行了你的腳本,它的工作,但實際上它沒有。我最初的例子肯定工作正常。我更新了幾個超鏈接的鏈接,甚至在同一個域上的不同路徑,它工作正常。 – Icarus

相關問題