2

我想知道如何使用 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>

我该怎么做?

4

3 回答 3

5

尝试replace()

var test = '#test is a #cool #place';
var html = test.replace(/#(\w+)/g, '<a href="abc.html?q=$1">#$1</a>')
于 2013-05-18T13:17:12.913 回答
0
test = test.replace(/#([^ ]+)/g, '<a href="abc.html?q=$1">#$1</a>');
于 2013-05-18T13:19:21.370 回答
0

我个人更喜欢这个:

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

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

于 2013-05-18T14:06:40.100 回答