等标记,这是最苯的方法了,也是效果最不好的,因为大家知道在HTML编辑器里的表格标记中好多换行的,而UBB是为换行转为<BR>的,所以这个方法实现了会发现好多空行的,而且这个方法和上面那一步一个共同缺点就是更不能剔除非配套标记。
附我写的退一步后的正则:(我用JSP)
QUOTE: \\[(table)([^\\[]*?)\\][^\\[]*?\\[tr\\][^\\[]*?\\[td([^\\[]*)\\] | \\[\\/(td)\\][^\\[]*?\\[\\/tr\\][^\\[]*?\\[tr\\][^\\[]*?\\[td([^\\[]*)\\] | \\[\\/(td)\\][^\\[]*?\\[td([^\\[]*)\\] | \\[\\/(td)\\][^\\[]*?\\[\\/tr\\][^\\[]*?\\[\\/table\\] 我想如果是管理员发布信息什么的,能保证表格标记的正确的话用这个还可以的。其实如果有人想捣乱的话,再严谨的UBB也不能防止的啊。 欢迎有兴趣者来此讨论,提出更好建议,打造最好最全的UBB。
|
|
function tableubb(s){ |
var n=s.match(/\[table\]/ig).length; |
var m=s.match(/\[\/table\]/ig).length; |
for(var i=0;i |
s=s.replace(/\[table\](([\s\S](?!\[table\]))*)\[\/table\]/ig,''); |
s=s.replace(/\[tr\](([\s\S](?!\[tr\]))*)\[\/tr\]/ig,' |
$1
'); s=s.replace(/\[td\](([\s\S](?!\[td\]))*)\[\/td\]/ig,' | $1 | ');
} |
return(s); |
} |
|
|
[TABLE] |
[TR] |
[TD] |
哈哈 |
[TABLE] |
[TR] |
[TD] |
的 |
[TABLE] |
[TR] |
[TD] |
的 |
[TABLE] |
[TR] |
[TD] |
的 |
[/TD] |
[/TR] |