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

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

acee7bd0d8339b9ddcf4a259ec7ddeec 

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

  var caption = anchor.attr('data-caption') ? anchor.attr('data-caption') : null; console.log(caption); 

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

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

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

 caption.replace(/#(\S*)/g,'$1'); 

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

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

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

 var captionLinks = caption.replace(/#(\S*)/g,'$1'); 

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

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

 caption.replace(/#(\S*)/g,'$1'); 

尝试使用它像这样:

 caption = caption.replace(/#(\S*)/g,'$1'); 

根据Replace 文档

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

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

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

我会选择/#(\S+)/g来避免单#