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