`
ater
  • 浏览: 49788 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

java版的正规UBB

阅读更多
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/** *//**
 * 
@author zsy
 
*/


public final class Ubbcode ...{

    
private static final String imagePath = "images/"// 定义图片路径
    private static final String strIcons = "1";
    
private static final String picUrl = "edit/images/";
    
private static final String imgName = "edit/images/face/";

    
private static final String notePath = "http://www.richmap.com.cn/richmap4/api/tools/";
    
    
private static String ubbItem(String strContent, String re, String replayStr, 
            Pattern pattern, Matcher matcher, 
boolean IgnoreCase) ...{
        pattern 
= Pattern.compile(re);
        matcher 
= pattern.matcher(strContent);
        strContent 
= matcher.replaceAll(replayStr);
        
if (IgnoreCase) ...{
            pattern 
= Pattern.compile(re.toUpperCase());
            matcher 
= pattern.matcher(strContent);
            strContent 
= matcher.replaceAll(replayStr);
        }

        
return strContent;
    }

    
    
private static String quote(String strContent, Pattern pattern, 
            Matcher matcher, 
boolean IgnoreCase) ...{
        String re 
= "(\[quote\])(.*?)(\[\/quote\])";
        
int start = strContent.lastIndexOf("[quote]");
        
int end = strContent.indexOf("[/quote]");
        String subStr 
= null;
        String newStr 
= null;
        
while (start != -1 && end != -1...{
            subStr 
= strContent.substring(start, end + 8);
            pattern 
= Pattern.compile(re);
            matcher 
= pattern.matcher(subStr);
            newStr 
= matcher.replaceAll("<TABLE style="BORDER-RIGHT: #cccccc 1px dotted; " +
                    
"TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: " +
                    
"#cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellSpacing=0 " +
                    
"cellPadding=6 width=95% align=center border=0><TBODY><TR><TD " +
                    
"style="WORD-WRAP: break-word;font-size:12px;" bgColor=#f3f3f3><FONT " +
                    
"style="FONT-WEIGHT: bold; COLOR: #990000; font-size:12px;">***以下是引" +
                    
"用***</FONT><HR width=95% style="border:1px dotted  #cccccc "><center>" +
                    
"$2</center></TD></TR></TBODY></TABLE>");
            strContent 
= strContent.replace(subStr, newStr);
            start 
= strContent.lastIndexOf("[quote]");
            end 
= strContent.indexOf("[/quote]");
        }

        
        
if (IgnoreCase) ...{
            re 
= "(\[QUOTE\])(.*?)(\[\/QUOTE\])";
            start 
= strContent.lastIndexOf("[QUOTE]");
            end 
= strContent.indexOf("[/QUOTE]");
            
while (start != -1 && end != -1...{
                subStr 
= strContent.substring(start, end + 8);
                pattern 
= Pattern.compile(re);
                matcher 
= pattern.matcher(subStr);
                newStr 
= matcher.replaceAll("<TABLE style="BORDER-RIGHT: #cccccc 1px dotted; " +
                        
"TABLE-LAYOUT: fixed; BORDER-TOP: #cccccc 1px dotted; BORDER-LEFT: " +
                        
"#cccccc 1px dotted; BORDER-BOTTOM: #cccccc 1px dotted" cellSpacing=0 " +
                        
"cellPadding=6 width=95% align=center border=0><TBODY><TR><TD " +
                        
"style="WORD-WRAP: break-word;font-size:12px;" bgColor=#f3f3f3><FONT " +
                        
"style="FONT-WEIGHT: bold; COLOR: #990000; font-size:12px;">***以下是引" +
                        
"用***</FONT><HR width=95% style="border:1px dotted  #cccccc "><center>" +
                        
"$2</center></TD></TR></TBODY></TABLE>");
                strContent 
= strContent.replace(subStr, newStr);
                start 
= strContent.lastIndexOf("[QUOTE]");
                end 
= strContent.indexOf("[/QUOTE]");
            }

        }

        
return strContent;
    }

    
    
/** *//**
     * @description 转换代码,使之支持ubbcode.
     * 
@param strContent
     *            转换前的代码.
     * 
@return result 转换后的内容.
     
*/

    
public static String ubbCode(String strContent) ...{
        strContent 
= dvHTMLEncode(strContent);
        Pattern pattern 
= null;
        Matcher matcher 
= null;
        
        
//随意贴
        strContent = ubbItem(strContent, 
                
"\[richmapfrm=(.[^\[]*)\](.+?)\[\/richmapfrm\]"
                
"<iframe src=" + notePath + "singleNote.jsp?w=600&h=480" +
                
"&noteid=$1 frameborder=0 marginheight=0 marginwidth=0 scrolling=no height=400 " +
                
"width=600 title=睿图随意贴,贴出你的故事,贴出你的心情 target=_blank><img src=" + 
                picUrl 
+ "button/richiframe.gif border=0> $2</iframe>"
                pattern, matcher, 
true);
        
        strContent 
= ubbItem(strContent, 
                
"\[richmap=(.[^\[]*)\](.+?)\[\/richmap\]"
                
"<a href=" + notePath + "myNote.jsp?&noteid=$1 " +
                
"title=睿图随意贴,贴出你的故事,贴出你的心情 target=_blank><img src=" + picUrl + 
                
"button/richwindow.gif border=0>$2</a>"
                pattern, matcher, 
true);
        
        
//转换IMG
        strContent = ubbItem(strContent, 
                
"\[img\](.+?)\[\/img\]"
                
"<a href="$1" target="_blank">" +
                
"<IMG SRC="$1" border="0" alt="按此在新窗口浏览图片" " +
                
"onload="javascript:if(this.width>600)this.width=600" " +
                
"galleryImg="no"></a>"
                pattern, matcher, 
true);

        
//转换附件[FILE=路径,图片]名称[/FILE]
        strContent = ubbItem(strContent, 
                
"(\[file=(.[^\[]*),(.[^\[]*)\])(.*?)(\[\/file\])"
                
"<br><IMG SRC=$3 border=0><br> <a href=$2>$4</a>"
                pattern, matcher, 
true);
        
        
//DIR
        strContent = ubbItem(strContent, 
                
"\[dir=*([0-9]*),*([0-9]*)\](.*?)\[\/dir]"
                
"<object classid=clsid:" +
                
"166B1BCA-3F9C-11CF-8075-444553540000 codebase=" +
                
"http://download.macromedia.com/pub/shockwave/cabs/director/" +
                
"sw.cab#version=7,0,2,0 width=$1 height=$2><param name=src " +
                
"value=$3><embed src=$3 pluginspage=http://www.macromedia.com/" +
                
"shockwave/download/ width=$1 height=$2></embed></object>"
                pattern, matcher, 
true);
        
        
//QT
        strContent = ubbItem(strContent, 
                
"\[qt=*([0-9]*),*([0-9]*)\](.*?)\[\/qt]"
                
"<embed src=$3 width=$1 height=$2 " +
                
"autoplay=true loop=false controller=true playeveryframe=false " +
                
"cache=false scale=TOFIT bgcolor=#000000 kioskmode=false " +
                
"targetcache=false pluginspage=http://www.apple.com/quicktime/>"
                pattern, matcher, 
true);
        
        
//MP
        strContent = ubbItem(strContent, 
                
"\[mp=*([0-9]*),*([0-9]*)\](.*?)\[\/mp]"
                
"<object align=middle classid=CLSID:" +
           
分享到:
评论

相关推荐

    实现ubb代码的java类

    "实现ubb代码的java类"是一个专注于处理UBB(Unix Bulletin Board)代码的Java程序,UBB代码是一种早期在论坛和在线社区中广泛使用的轻量级标记语言,它允许用户在文本中插入格式化元素,如粗体、斜体、链接等。...

    UBB.classicTM 6.3.0.1 中文增强版

    《UBB.classicTM 6.3.0.1 中文增强版——打造高效论坛社区的利器》 UBB.classicTM 6.3.0.1 是一款专为中文用户设计的论坛社区软件的增强版本,它在基础版本的基础上进行了一系列的功能升级和优化,旨在提升用户体验...

    ubbeditor.rar_Java 8_ubb编辑器源码

    迷你UBBEditor在线编辑器 v1.0,具有体积小巧,兼容性好(支持IE6,7,8 Safari, Firefox, Chrome 等众多浏览器)、安全性高,用它产生的是UBB代码,如果在网页中输出显示时,需要通过服务器脚本来解析这些代码,还有...

    UBB论坛6.04汉化版

    UBB 论坛 6.04 汉化版

    在线编辑器ubb插件

    在线编辑器UBB插件是一种常见的富文本编辑工具,它允许用户在网页上方便地编辑和格式化文本,类似于我们常见的Word处理软件。UBB,全称“Universal BBCode”,是一种扩展的BBCode(Bulletin Board Code)标记语言,...

    UBB语法UBB语法UBB语法

    ### UBB语法简介 UBB(Ultimate Bulletin Board)语法是一种用于论坛或社区中的轻量级标记语言。它主要用于格式化文本,使用户能够在没有HTML等复杂语言的情况下轻松地编辑和美化帖子。UBB语法通过特定的标签来实现...

    高速UBB标签转换引擎

    本站文章系统中使用的UBB标签转换引擎,有以下特点: 1. 性能极高,对全文只扫描一遍,且和UBB标签的种类数量无关,因此可以任意添加新的UBB标签而不必担心性能会下降 2. 容错性非常好,比如对于错误UBB语法"[b]你...

    ubb在线编辑器(提供学习)

    **ubb在线编辑器详解** ubb编辑器是一种轻量级的文本编辑工具,主要应用于网络论坛、博客等在线交互平台,让用户能够以简单的标记语言输入格式化的文本。"MzUBB"可能是该编辑器的一个具体实现或版本。下面将详细...

    Ubb简单编辑器

    **Ubb简单编辑器详解** **一、UBB编辑器简介** UBB(UltraBB Code)是一种基于HTML的简化标记语言,主要用于论坛、博客等在线社区,为用户提供一种简便的方式来插入特殊格式的内容,如文本样式、图片、链接等。与...

    Open Accelerator Infrastructure Project Overview(OAM+UBB)

    **Open Accelerator Infrastructure Project Overview (OAM+UBB)** OAM+UBB是Open Compute Project (OCP) 下的一个重要子项目,旨在构建开放的加速器基础设施,以快速适应人工智能(AI)和高性能计算(HPC)应用中...

    ubb.rar_asp ubb_ubb

    标题 "ubb.rar_asp ubb_ubb" 暗示了这个压缩包文件与Discuz论坛系统的ubb编辑器有关,并且包含了一些与ASP(Active Server Pages)编程相关的代码。Discuz是一个广泛使用的开源社区论坛软件,其编辑器允许用户使用...

    经典好用ubb编辑器

    3. **易嵌入**:ubb编辑器可以轻松地嵌入到网页中,无论是静态HTML页面还是动态网页应用,如PHP、ASP.NET或Java等平台,都能快速集成。 4. **兼容性**:考虑到不同浏览器的兼容性问题,ubb编辑器通常会进行优化,...

    ubb文件ubb文件ubb文件

    "ubb文件"是一种特殊的文本格式,主要用于网络论坛和聊天室中的文字编码,它在早期的互联网时代比较常见。"ubb"是"Uniform BBCode"的缩写,BBCode是Bulletin Board Code的简称,即论坛代码,它是一种轻量级的标记...

    UBB在线编辑器代码集合

    UBB(Unified BBCode)是一种轻量级的标记语言,常用于论坛、博客等在线文本编辑器中,它提供了一种简单的方式来格式化文本,如插入图片、链接、颜色、字体等,而无需用户掌握HTML代码。UBB在线编辑器是这种语言的一...

    asp ubb编辑器

    ASP UBB编辑器是一款基于Active Server Pages (ASP) 技术的富文本编辑工具,它主要用于网站内容管理系统中,提供用户友好的界面,允许用户在发布或编辑文章时使用简单的UBB(Uniform BBCode)语法来插入各种格式的文本...

    discuz的ubb编辑器(asp.net版)

    - **性能问题**:随着网站流量的增加,旧版编辑器可能处理速度变慢,影响用户体验。 - **新功能缺失**:新版本通常会添加更多功能和改进,老版本可能无法享受这些更新。 为了避免这些问题,建议使用最新版本的...

    ubb代码加注释

    this is ubb ubb代码加注释

    UBB替换为Html

    在IT领域,UBB(Unified Bulletin Board)是一种用于在线论坛和聊天室的简化标记语言,它允许用户在帖子中插入格式化文本,如字体、颜色、链接等,而无需掌握复杂的HTML语法。UBB代码通常比HTML更易于理解和使用,但...

    动网论坛风格ubb标签

    《动网论坛风格UBB标签详解》 动网论坛,作为早期互联网上广泛使用的社区论坛系统,其特色之一就是支持UBB(Uniform BBCode)标签。UBB是一种轻量级的标记语言,专为论坛设计,让普通用户也能方便地在帖子中添加...

    UBB_URL转换工具

    UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换UBB_URL转换

Global site tag (gtag.js) - Google Analytics