Javascript 函数返回不是我所期望的

Javascript 函数返回不是我所期望的,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("@",""

我创建了一个解析文本的函数,我希望它返回完整的链接,比如:

@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("@","")
        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;