我想让任何'@sometext'HTML链接'sometext'也附加到一个URL。即'@sometext'成为'http://someurl.com/sometext'的链接。但它可以改变,因为每次取决于'sometext'的链接都会有所不同。我正在写这个JavaScript和jQuery。当有人插入链接到该用户的个人资料页面的@username时,我试图重新创建类似于Twitter上的链接。如何在Javascript/JQuery中替换以Twitter这样的'@'符号开头的字符串中的任何单词?
我已经有代码来查找文本中的URL并将它们设置为HTML链接。但是我没有写任何我现在想用'@'符号写的东西。我一直无法找到任何帮助我的东西。
这是我必须做的网址HTML链接代码:
var message = this.text;
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
message = message.replace(exp,"<a href='$1' target='_new'>$1</a>");
resultDiv += message + "</div>";
好了,所以这是我的代码现在的样子,它是工作,只是对一些@sometext环节有一个“: '直接跟在字符串@sometext之后:因此链接是一个断开的链接。当创建url为HTML链接时,我如何删除或忽略':'?
$(data.results).each(function() {
var userLink = "<a href=\"http://twitter.com/" + this.from_user + "\">";
var replyTo = this.to_user;
var resultDiv = "<div class=\"finalResult\">";
resultDiv += "<fieldset class=\"tweetReturn\" style = \"width: 75%;\">";
resultDiv += "<div><div id=\"userImage\"><img src=\"" + this.profile_image_url + "\" height=\"48px\" width=\"48px\"/></div>";
resultDiv += "<div id=\"userMessage\"><strong>" + userLink + this.from_user + "</a></strong> ";
var message = this.text;
var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
message = message.replace(exp,"<a href='$1'>$1</a>");
message = message.replace(/(^|\s)@(\S+)/g, '[email protected]<a href=\"http://twitter.com/$2\">$2</a>');
message = message.replace(/(^|\s)#(\S+)/g, '$1<a href=\"http://search.twitter.com/search?q=%23\$2\">#$2</a>');
resultDiv += message + "</div>";
resultDiv += "<div id=\"twitterLink\"><a href=\"http://www.twitter.com\"><img src=\"http://twitter-badges.s3.amazonaws.com/twitter-b.png\" alt=\"Visit Twitter\"/></a></div>"
resultDiv += "<div id=\"timestamp\">" + this.created_at + "</div>";
resultDiv += "</div></div></fieldset>";
resultDiv += '</div><br />';
$("#displayResults").append(resultDiv);
});
欢迎使用stackoverflow。你可以发布你现在拥有的代码吗,所以我们可以看到你正在尝试做什么,并试图找出发生了什么问题?你会发现发布代码可以帮助人们帮助你。 – Oded 2010-06-25 20:44:33