如何使用javascript替换来自jquery数据属性的链接的哈希标记

Bri*_*ian 7 regex jquery hashtag

我正在尝试像在这个问题中一样 改变#hash标签链接页面加载 但是我认为因为我从jquery对象获取字符串data-caption属性有些东西不能正常工作.我有这样的DOM元素

<a class="thumbnail" rel="gallery" data-caption="#drink from somewhere #fun" data-pid="36" href="http://domain.com/something"><img src="http://domain.com/somephoto.png" alt="acee7bd0d8339b9ddcf4a259ec7ddeec"></a>
Run Code Online (Sandbox Code Playgroud)

它基本上是一个加载到模态的缩略图然后我试图抓住属性标题并从任何哈希标签创建链接

 var caption = anchor.attr('data-caption') ? anchor.attr('data-caption') : null;
 console.log(caption);
Run Code Online (Sandbox Code Playgroud)

其中变量锚是表示链接的jquery对象

我可以看到有一个标题,如果我检查它打印的日志"#drink from somewhere #fun"

所以现在把它扔进一个正则表达式替换fn

caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');
Run Code Online (Sandbox Code Playgroud)

然后将标题附加到DOM并激活链接.

但是字幕字符串没有任何反应我只是得到了我输入的相同的东西.

**编辑答案愚蠢的错误忘记将返回值分配给变量

var captionLinks = caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');
Run Code Online (Sandbox Code Playgroud)

Nop*_*ope 12

如果您的问题中的代码与您使用时完全一致,则需要指定结果caption.replace().只是打电话.replace()不会改变caption.

假设你所做的一切都是这样的:

caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');
Run Code Online (Sandbox Code Playgroud)

尝试使用它像这样:

caption = caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');
Run Code Online (Sandbox Code Playgroud)

文件Replace:

返回一个新字符串,其中一个或所有匹配的模式由替换替换.模式可以是字符串或RegExp,替换可以是字符串或要为每个匹配调用的函数.

当然,如果你已经这样做,而你根本就没有发布,那么问题就是其他问题.

如果是这种情况,请告诉我,我将删除我的答案,因为它显然不适用.