Javascript Jquery检测命令/自定义BBcode
因此,我希望能够检测到我论坛上的用户在帖子中写了什么,并相应地更改它的CSS。比如说,Javascript Jquery检测命令/自定义BBcode,javascript,jquery,regex,bbcode,Javascript,Jquery,Regex,Bbcode,因此,我希望能够检测到我论坛上的用户在帖子中写了什么,并相应地更改它的CSS。比如说, [hl color:'yellow']example test[/hl] 应在文本上应用强光: style="background-color: yellow" 我希望jQuery代码检测[hl color:如果成功,将'之间的值保存在变量中,然后测试剩余的]。然后,我希望它将style=“background color:”+var应用于]之后和[/hl]之前的文本 提前谢谢 当前未加工代码: $('.
[hl color:'yellow']example test[/hl]
应在文本上应用强光:
style="background-color: yellow"
我希望jQuery代码检测[hl color:
如果成功,将'
之间的值保存在变量中,然后测试剩余的]
。然后,我希望它将style=“background color:”+var
应用于]
之后和[/hl]
之前的文本
提前谢谢
当前未加工代码:
$('.post').each(function() {
if($(this:contains('[hl color:'))) {
var txt = [I have no idea];
$(select the text in between tags).attr('style', 'background-color:' + txt);
}
});
选项1:使用库
已经有很多JavaScript库可以解析BBC代码。看起来很有希望,并且是可扩展的,因此您可以添加自己的标记。您也可以考虑在服务器端(使用PHP或您所使用的任何东西)使用那里的库(如PHP)进行解析。
选择2:自己动手
这不需要实际的jQuery。相反,对于简单的标记,regex执行以下操作:
function bbcodeToHTML(bbcode) {
return bbcode.replace(
/\[\s*hl\s*color\s*:\s*(.*?)\s*\](.*?)\[\s*\/\s*hl\s*\]/gi,
'<span style="background-color:$1;">$2</span>'
);
}
有关jQuery的更多信息,您可以随时查看。请显示一些努力?您对所谓的请求jQuery代码做了什么?如果有,请附上你的问题好的,高兴吗?JQueryDon补充道,不要对此感到不高兴,因为这是提问的正确方式,而不是我个人的意见。如果你不想得到反对票,那是唯一的办法。顺便说一句,这取决于用户界面真的不知道如何做,我在这里的原因,所以我如何使用这个我想要的。我以前从未遇到过regex,我将它重写为一个可以使用的函数。每当您有一个带有BBCode的变量(或者更确切地说是它的一个标记子集)时,调用该函数将其作为HTML。我不知道你从哪里得到BBCODE或者你想把HTML放在哪里,所以我不能帮助你。我在这里猜测,但是你想让它运行每当论坛页面被查看,并取代所有帖子的内容吗?是的,这就是我想考虑更新你的问题,以更清楚地反映这一点。我已经更新了我的答案。
//Itterate over all forum posts.
jQuery('.post').each(function() {
//Get a reference to the current post.
currentPost = jQuery(this);
//Get the content ant turn it into HTML.
postHTML = bbcodeToHTML(currentPost.html());
//Put the html into the post.
currentPost.html(postHTML);
});