возврат функции не то, что я ожидаю - PullRequest
1 голос
/ 08 декабря 2011

Я создал функцию, которая анализирует текст, и я хотел бы, чтобы она возвращала полную ссылку, скажем:

@ tw вернул бы <a href="http://www.twitter.com/tw"></a>

, скорее она возвращает 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;

    });
  };

Ответы [ 2 ]

0 голосов
/ 08 декабря 2011

Это то, что вы ищете?

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);
  };
0 голосов
/ 08 декабря 2011

Это может быть то, что вы хотите.

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;
};

jsFiddle .

...