使用#符号将文本转换为javascript中的链接

时间:2013-05-18 13:08:46

标签: javascript regex twitter

我想知道如何使用Javascript进行以下操作。

假设我有类似以下的文字

var test = '#test is a #cool #place';

我想要以下

<a href="abc.html?q=test">#test</a> is a <a href="abc.html?q=cool">#cool</a> <a href="abc.html?q=place">#place</a>

我该怎么做?

3 个答案:

答案 0 :(得分:5)

尝试replace()

var test = '#test is a #cool #place';
var html = test.replace(/#(\w+)/g, '<a href="abc.html?q=$1">#$1</a>')

答案 1 :(得分:0)

test = test.replace(/#([^ ]+)/g, '<a href="abc.html?q=$1">#$1</a>');

答案 2 :(得分:0)

我个人更喜欢这个:

stringToMatch.replace(/(<a[^>]*)?#(\w+)(?!\w)(?!.*?<\/a>)/g,
    function($0, $1, $2) {
        return $1 ? $0 : '<a href="'+ window.location +'?q=' + $2 + '">#' + $2 + '</a>';
    }
));

这将匹配除其他链接之外的所有内容。请参阅此example