繁体   English   中英

使用javascript正则表达式链接没有空间的多个主题标签

[英]linkify multiple hashtags with no space using javascript regex

我目前正在使用正则表达式像这样链接标签:

var text = "#sun #summer";
text = text.replace(/(^|\s)#(\S+)/g, '$1<a href="/$2">#$2</a>');

输出:

"#<a href="/sun">sun</a> #<a href="/summer">summer</a>"

这可以正常工作,但有时人们在#号标签之间添加空格,因此如下所示: "#sun#summer"

如何链接这种没有空格的主题标签?

我尝试了这个:

var text = "#sun#summer";
text = text.replace(/(^|.)#(.|\S+)/g, '$1<a href="/$2">#$2</a>');

输出:

"<a href="/s">#s</a>un<a href="/s">#s</a>ummer"

但只能在#之后使用一个字符

var text = "#sun#summer";
text.replace(/#([^\s#]+)/g, '<a href="/$1">#$1</a>');
# => "<a href="/sun">#sun</a><a href="/summer">#summer</a>"

对于第二个,您可以尝试以下正则表达式,

(^|\b)#([^#]+)

演示

您的代码是

> var str = '#sun#summer';
> str.replace(/(^|\b)#([^#]+)/g, '$1<a href="/$2">#$2</a>');
'<a href="/sun">#sun</a><a href="/summer">#summer</a>'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM