Eas*_*yBB 0 javascript regex jquery tagging
我试图在一个元素中获取任何字符串,#以获得一个虚拟标记系统.基本上
#hello
#goodbye
#good afternoon
然后会显示为
hello
goodbye
good
这是我到目前为止的正则表达式
/#^\s/
Run Code Online (Sandbox Code Playgroud)
我不是很擅长正则表达式,虽然我相信^\s是我想要的文本直到空白.
示例HTML:
<div class="content">
<div>Hello everyone today we are going to be discussing #world_views , <br />
Please enjoy today's discussing by #user2
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望它变成什么
<div class="content">
<div>Hello everyone today we are going to be discussing
<a href="/search&keywords=world%20views">#world_views</a> , <br />
Please enjoy today's discussing by <a href="/search&keywords=user2>#user2</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
到目前为止完整的JavaScript:
$(function() {
var i,forum={
phpbb2:'.postbody',
phpbb3:'.post .content',
punbb:'.entry-content',
invision:'.postbody'
},
yourVersion="phpbb3";
for (i=0;i<forum[yourVersion].length;i++){
$(forum[yourVersion][i]).html(function() {
return $(this)
.html()
.replace(
/#^\s/,
'<a href="/search&keywords='+$1.replace("#","")+'">$1</a>');
});
}
});
Run Code Online (Sandbox Code Playgroud)
nic*_*ckb 10
你正在寻找"正则表达式"中的"任何不是空白字符,一次或多次"的东西,如下所示:
\S+
Run Code Online (Sandbox Code Playgroud)
所以,对于你的正则表达式,它将是:
/#\S+/
Run Code Online (Sandbox Code Playgroud)
您还可以考虑使用仅包含\S+匹配文本的捕获组,如下所示:
/#(\S+)/
Run Code Online (Sandbox Code Playgroud)
现在捕获组#1将包含主题标签的文本,没有井号.