使用Javascript从文本区域删除BBcode
removing BBcode from textarea with Javascript
我正在为phpBB3论坛创建一个小的javscript,它计算您键入的字符数。但我需要删除特殊字符(我设法做到了)和一个BBcode:引用
我的问题在于引用。。。以及我对regex了解不多的事实。
这就是我目前所做的,但我被困了:
http://jsfiddle.net/emjkc/
var text = '';
var char = 0;
text = $('textarea').val();
text = text.replace(/[&'/''#,+()$~%.'":*?<>{}!?('r'n|'n|'r)]/gm, '');
char = text.length;
$('div').text(char);
$('textarea').bind('input propertychange', function () {
text = $(this).val();
text = text.replace(/[&'/''#,+()$~%.'":*?<>{}!?'-'–_;('r'n|'n|'r)]/gm, '');
char = text.length;
$('div').text(char);
});
您最好为此编写一个解析器,但如果您想尝试使用正则表达式,这应该可以做到:
text = $('textarea').val();
while (text.match(/'[quote.*'['/quote']/i) != null) {
//remove the least inside the innermost found quote tags
text = text.replace(/^(.*)'[quote.*?'['/quote'](.*)$/gmi, ''$1'$2');
}
// now strip anything non-character
text = text.replace(/[^a-z0-9]/gmi, '');
我不确定这是否可行,但我认为你可以用这样的正则表达式替换所有的bbcode:
var withoutBBCodes = message.replace(/'[[^']]*']/g,"");
它只是取代了[any char != ']' goes here]
之类的一切
编辑:对不起,没有看到你只想替换[引用],而不是所有的bbcodes:
var withoutBBQuote = message.replace(/'[['/]*quote[^']]*']/g,"");
编辑:好的,你还想删除引用的内容:
while (message.indexOf("[quote") != -1) {
message = message.replace(/'[quote[^']]*']((?!'[[['/]*quote).)*'['/quote']/g,"");
}
我知道你已经得到了一个解决方案,感谢@guido,但不想留下这个错误的答案。
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- addData()从最新图表中删除.js 2.1.3-怎么了
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 删除CKEditor工具栏按钮,但不删除功能
- 当浏览器上的后退按钮到达主页时,我需要删除Class
- 正在删除node.js中已验证的网站
- 正在从页面中删除iframe
- 如何从 HTML 查询中删除项目
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 在Javascript中使用Regex删除BBCode
- 使用Javascript从文本区域删除BBcode