Jquery检测命令/自定义BBcode
Jquery detect commands/Custom BBcode
所以我想能够检测什么用户在我的论坛上写的帖子,并相应地改变它的CSS。例如,
[hl color:'yellow']example test[/hl]
应该对文本应用高亮显示:
style="background-color: yellow"
我希望jQuery代码检测[hl color:
,如果成功,将' '
之间的值保存在一个变量中,然后测试剩余的]
。然后,我希望它将style="background-color: " + var
应用于]
之后和[/hl]
之前的文本
Thanks in advanced.
当前无效代码:
$('.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库可以解析BBCode。这个看起来很有前途,并且是可扩展的,因此您可以添加自己的标记。您还可以考虑在服务器端(在PHP或任何您正在使用的)使用库(如PHP的jBBCode)进行解析。
选项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>'
);
}
这个正则表达式是做什么的?
-
'['s*hl's*color's*:'s*
:文字[
,然后是任意数量的空白,然后是color
,然后是任意数量的空白,然后是文字:
,然后是任意数量的空白。 -
(.*?)
:惰性捕获(作为$1
)任何字符。这意味着它尝试匹配尽可能少的字符。 -
's*']
:结束开始标记。 -
(.*?)
:与上面相同,但捕获$2
-
'['s*'/'s*hl's*']
:结束标记,包含任意数量的空格。 -
g
:全局标志。替换所有匹配项,并且在第一次之后不停止。 -
i
:不区分大小写。匹配HL
和hl
在这里看到它的作用
替换论坛帖子内容
现在您将需要一些jQuery。我将假设在BBCode中包含论坛帖子的元素,您希望用HTML替换它们,这些元素都有一个名为post
的类,以便可以识别它们。那么下面的代码将完成工作:
//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);
});
有关jQuery的更多信息,您可以随时查看文档
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- jQuery自定义验证比较多个输入的序列
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 在wordpress一定时间后更改自定义字段
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 自定义函数中的光标位置
- 用于检查数组中是否存在元素的javascript自定义方法
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- Meteor-添加用户自定义字段的方法不起作用
- 自定义表单验证和提交
- jQuery工具验证器自定义效果-添加&消除影响
- 可以't计算自定义谷歌地图的js
- 谷歌水印未显示在自定义搜索框中
- vaadin:使用自定义布局集成angular js
- DataTables-创建自定义分页样式(加载更多样式)
- 实现一个建立在google.com之上的自定义搜索引擎
- 添加自定义标记以自动完成
- 如何使用自定义标头跨域执行AJAX POST
- Jquery检测命令/自定义BBcode