2011-10-06 18 views
1

我試圖將字符串中的網址轉換爲鏈接,條件是網址必須與我使用的網域相同。我該怎麼做呢?用條件替換字符串中的網址

我的域名http://www.domain.com

str = "This is a www.domain.com text with url. This is another url: www.domain2.com. This is a part of a url: http://domain.com/foo.php. This is another link: https://stackoverflow.com/questions/ask. Another link: domain.com/bar.php"; 

我想要的是:

  1. www.domain.com改變到<a href='www.domain.com'>domain.com</a>
  2. www.domain2.com保持不變。
  3. http://domain.com/foo.php改爲<a href='http://domain.com/foo.php'>/foo.php</a>
  4. https://stackoverflow.com/questions/ask保持不變。
  5. domain.com/bar.php改變到<a href='domain.com/bar.php'>/bar.php</a>

我如何能做到這一點的JavaScript?

回答

2

應該這樣做:

str.replace(/(?:(?:http:\/\/)?(?:www\.)?(domain\.com))(\/[a-zA-Z]+\.php)?/g, 
    function(a,b,c) { 
     return '<a href="'+a+'">'+(c ? c : b)+'</a>'; 
    }); 

這裏的工作小提琴http://jsfiddle.net/URLzx/1/