Javascript 函数返回不是我所期望的
我创建了一个解析文本的函数,我希望它返回完整的链接,比如: @tw会回来的 相反,它回来了http://www.twitter.com/tw 没有标记。如何附加标记以包含文本tw,并将标记返回到htmlJavascript 函数返回不是我所期望的,javascript,function,append,return,Javascript,Function,Append,Return,我创建了一个解析文本的函数,我希望它返回完整的链接,比如: @tw会回来的 相反,它回来了http://www.twitter.com/tw 没有标记。如何附加标记以包含文本tw,并将标记返回到html String.prototype.parseUsername = function() { return this.replace(/[@]+[A-Za-z0-9-_]+/g, function(u) { var username = u.replace("@",""
String.prototype.parseUsername = function() {
return this.replace(/[@]+[A-Za-z0-9-_]+/g, function(u) {
var username = u.replace("@","")
var twitter_link = document.createElement("a");
twitter_link.href = "http://www.twitter.com/"+username
twitter_link.target = "_blank"
console.log(twitter_link)
return twitter_link;
});
};
这可能是你想要的
String.prototype.parseUsername = function() {
var links = [];
this.replace(/@(\w+)/g, function(all, username) {
var twitter_link = document.createElement("a");
twitter_link.href = "http://www.twitter.com/" + username;
twitter_link.target = "_blank"
links.push(twitter_link);
});
return links;
};
这就是你要找的吗
String.prototype.parseUsername = function(userName) {
userName = this.replace(/[@]+[A-Za-z0-9-_]+/g, userName.replace("@", ""));
return (function(u) {
var twitter_link = document.createElement("a");
twitter_link.href = "http://www.twitter.com/"+u
twitter_link.target = "_blank"
console.log(twitter_link)
return twitter_link;
})(userName);
};
它应该如何处理多次提及?更改字符串或返回一个锚点数组?我对JavaScript不太熟悉,但看起来有两个返回,可能一个正在取消另一个。可能类似于var str=;或者尝试返回twitter_link.href;