2011-10-06 20 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/