2012-08-22 21 views
0

所以,我的脚本是分开的链接部分。它是一个jQuery的twitter推文脚本,拉我的鸣叫。 它通过正则表达式生成的链接应该是 - http://twitter.com - 取而代之的是http://www.mydomain.com/http://twitter.com - obv不起作用。从文本jQuery正则链接 - 添加不需要的域链接

澄清 - 当一个twitter feed里面有一个文本链接时,正则表达式会将它转换成一个适当的链接,但将页面当前网址放在它的前面。

<script language="JavaScript"> 
$.getJSON("https://twitter.com/statuses/user_timeline.json screen_name=twitternamehere&count=2&callback=?", 
function(data){ 
$.each(data, function(i,item){ 
ct = item.text; 
mytime = item.created_at; 
var strtime = mytime.replace(/(\+\S+) (.*)/, '$2 $1') 
var mydate = new Date(Date.parse(strtime)).toLocaleDateString(); 
var mytime = new Date(Date.parse(strtime)).toLocaleTimeString();   

ct = ct.replace(/http:\/\/\S+/g, '<a href="$&" target="_blank">$&</a>'); 
ct = ct.replace(/\s(@)(\w+)/g, ' @<a href="http://twitter.com/$2" target="_blank">$2</a>'); 
ct = ct.replace(/\s(#)(\w+)/g, ' #<a href="http://search.twitter.com/search?q=%23$2" target="_blank">$2</a>'); 

$("#tweetRow").append("<div class='container'><div class='date'> "+mydate+" "+mytime+" </div><div class='tweet'> "+ct+" </div></div>"); 
      }); 
$('.container:last').addClass('container2'); 
      }); 
</script> 
+0

要严肃认真,并放上一个*真实的*示例,不要开个玩笑 – Alexander

+0

当twitter feed里面有一个文本链接时,正则表达式会将它转换为正确的链接,但会将页面当前网址放在它的前面。 – Jeff

回答

0
function processTwitLnk(text) { 
    var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/i; 
    text = text.replace(exp, "<a href='$1' target='_blank'>$1</a>"); 
    exp = /(^|\s)#(\w+)/g; 
    text = text.replace(exp, "$1<a href='http://search.twitter.com/search?q=%23$2' target='_blank'>#$2</a>"); 
    exp = /(^|\s)@(\w+)/g; 
    text = text.replace(exp, "$1<a href='http://www.twitter.com/$2' target='_blank'>@$2</a>"); 
    return text; 
} 

ct=processTwitLnk(ct); 

希望这有助于!

+0

完美 - 感谢您的帮助 – Jeff