我目前正在使用如下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>"
对于第二个,您可以尝试下面的regex,
(^|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>'