电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> Asp>>asp边缘应用:UBB代码的原理剖析:

asp边缘应用:UBB代码的原理剖析

来源:网络 | 2007-4-18 | (有2815人读过)

什么是UBB? 
UBB其实是国外的一个BBS程序(Ultimate Bulletin Board)采用的一种特殊的标记的简称。 
大家知道,在网上一般允许用户输入纯文本,但不会允许用户输入HTML代码。因为如果允许用户直接输入HTML代码,可能就有人会利用恶意代码破坏系统。可是有时候特别需要用户输入一些超链接地址或图片,那怎么办呢? 
此时,就可以使用UBB代码,这是一种特殊的标记,要求用户必须按这种格式要求输入,如: 
[ B]……[/b] 表示中间文本用黑体显示 
[ I]……[/i] 表示中间文本用斜体显示 
[ U]……[/u] 表示中间文本用下划线显示 
[ URL]……[/url] 表示中间文本是一个超链接地址 
[ IMG]……[/img] 表示中间文本是一个图片的地址 
当用户输入后,就需要将其显示在页面上。可是浏览器只不能识别UBB代码,它只认识HTML代码。如果直接输出呢,就可能会输出如下内容的代码: 
这是一张图片[ IMG]http://www.pku.edu.cn/pkuimages/pku_word1 .jpg[/img] 
如果想正确显示呢,就需要利用字符串函数对上面的字符串进行处理,将其修改为标准的HTML代码,如: 
这是一张图片<img src="http://www.pku.edu.cn/pkuimages/pku_word1 .jpg"> 
这样才能正确显示图片。 

UBB的实现过程 

UBB的实现过程基本可以总结为如下过程 
用户输入UBB代码→系统将其转换为HTML代码→将HTML代码显示在页面上。 

UBB的难点 

(1)如何将UBB代码替换为HTML代码? 
这就需要用到字符串函数,如Replace等,将其中的UBB代码替换为HTML代码即可,如将替换为<b>,将替换为</b>。 
(2)如何帮助用户写UBB代码? 
理论上可以让用户自己输入所有的UBB标记,如ubb1.0中的示例;但是由于普通用户撰写起来比较困难,所以很多系统会帮助用户书写UBB标记,这一般需要用JavaScript在客户端操作。 

说明 
(1) UBB的中心思想就是让客户输入一种特殊标记,然后由系统将其转换为标准的HTML标记显示在页面上。 
(2) 本示例主要是为了讲解原理,所以只选取了五个UBB标记,其实还可以添加声音、flash等各种其它标记。基本原理都是一样的。 

一个简单的UBBtoHTML函数 

<% 
’************************************************ 
’函数文件,这里利用正则表达式替换其中的UBB代码为标准的HTML代码 
’************************************************ 
Function UBBtoHTML(content) 
’建立正则表达式对象实例r。 
dim r  
set r=new RegExp 
r.ignorecase=true ’忽略大小写 
r.Global=true ’进行全局查找 
’替换斜体字 
r.pattern="(\[i\])(.[^\[]*)(\[\/i\])" 
content=r.Replace(content,"<i>$2</i>") 

’替换粗体字 
r.pattern="(\[b\])(.[^\[]*)(\[\/b\])" 
content=r.Replace(content,"<b>$2</b>") 
’再替换下划线 
r.pattern="(\[u\])(.[^\[]*)(\[\/u\])" 
content=r.Replace(content,"<u>$2</u>") 
’下面替换图片,本质上就要将[ IMG]http://www.jjshang.com/temp .jpg[/img]替换为<img src="http://www.jjshang.com/temp .jpg"> 
’其实只要把[ IMG]替换为<img src=",把[/img]替换为">即可。 
r.pattern="(\[img\])(.[^\[]*)(\[\/img\])" 
content=r.Replace(content,"<img src=""$2"">") 
’下面替换超链接,本质上就要将http://www.jjshang.com替换为<a target="_blank" href="http://www.cncfan.com/outurl.asp?url=http://www.pku.edu.cn">http://www.jjshang.com<;/a> 
r.pattern="(\[url\])(.[^\[]*)(\[\/url\])" 
content=r.Replace(content,"<a href=""$2"" target=""_blank"">$2</a>") 
’返回函数值 
UBBtoHTML=content 
End Function 
%>  
Asp热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号