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

如何使用javascript将哈希标记替换为来自jquery数据属性的链接,jquery,regex,hashtag,Jquery,Regex,Hashtag,我实际上是在试图做与这个问题相同的事情 但是我认为,因为我从jquery对象数据标题属性中获取字符串,所以有些东西工作不正常。我有这样一个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.pn

我实际上是在试图做与这个问题相同的事情 但是我认为,因为我从jquery对象数据标题属性中获取字符串,所以有些东西工作不正常。我有这样一个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>
其中,变量anchor是代表链接的jquery对象

如果我查看它打印的日志,我可以看到有一个标题“从某处喝酒,好玩”

现在用正则表达式替换fn

caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');
caption.replace(/#(\S*)/g';
然后在链接处于活动状态时将标题附加到DOM

但是标题字符串没有发生任何变化,我只是得到了与我输入的内容相同的内容

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

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

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

假设您所做的只是:

caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');
caption.replace(/#(\S*)/g';
试着像这样使用它:

caption = caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');
caption=caption.replace(/#)(\S*)/g';
根据对于
更换

返回一个新字符串,其中模式的部分或全部匹配项替换为 替代品。模式可以是字符串或RegExp,并且 替换可以是为每个匹配调用的字符串或函数

当然,如果你已经这么做了,但你只是没有发布,那么问题就不是这样了


如果是这样的话,请告诉我,我将删除我的答案,因为它显然不适用。

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

只是重复检查,你正在做
caption=caption.replace(…)
,而不仅仅是
caption.replace(…)
?就是这样,愚蠢的错误。谢谢
caption = caption.replace(/#(\S*)/g,'<a href="http://twitter.com/#!/search/$1">$1</a>');