ASP网站制作之ASP中使用“正则表达式” 工具完成UBB代...
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。ubb|工具|正则 上一次,我们谈到在ASP中怎样使用“正则表达式”工具来完成各类数据的校验,文中形貌了正则表达式工具的壮大功效,接上去,我们来看看有关“正则表达式”工具的其他功效。当我们在网上冲浪的时分,特别是扫瞄各种论坛的时分,常常会晤到“UBB代码”这个词语。甚么是UBB代码呢?UBB代码是HTML的一个变种,是UltimateBulletinBoard(外洋一个BBS程序,国际也有很多中央利用这个程序)接纳的一种特别的TAG。为了不用户偶然大概成心的HTML代码对论坛的打击,各类论坛基础上都屏障了HTML代码,可是为了使得论坛加倍“多姿多彩”,论坛城市响应的开放一些自界说的Tag标签,相似于HTML中的Tag,好比“,,,”,如许,能够供应一些同等于HTML代码的功效,又制止了论坛遭到歹意打击,这些自界说的各类Tag就是俗称的UBB代码。眼下时兴的论坛均撑持UBB代码。如今,我们一同利用“正则表达式”工具来完成我们本人的丰厚多彩的UBB代码吧。起首,你的服务器端(IIS大概PWS)要有VBScript5.0的撑持情况,一样平常指要安装了IE5.X就已能够撑持“正则表达式”工具了。
关于“正则表达式”工具的罕见办法、属性的利用办法,我在本刊的“在ASP中使用“正则表达式”工具完成数据的校验”一文中已有具体先容了,能够拜见那一篇文章,在这里,我次要先容一下完成“UBB代码”的次要正则表达式工具办法:Replace()办法。
Replace办法语法以下:
形貌:交换在正则表达式查找中找到的文本。
语法
object.Replace(string1,string2)
Replace办法的语法包括以下几个部分:
部分 形貌
object 必须的。老是一个RegExp工具的称号。
string1 必须的。string1是将要举行文本交换的字符串。
string2 必须的。string2是交换文本字符串。
申明
被交换的文本的实践形式是经由过程RegExp工具的Pattern属性设置的。
Replace办法前往string1的正本,个中的RegExp.Pattern文本已被交换为string2。假如没有找到婚配的文本,将前往本来的string1的正本。
接上去,我们要断定我们终极想要完成一套甚么样的UBB代码?此次我们要完成的UBB代码功效以下:
URL超等链接
在你的信息里到场超等链接,只需按以下体例套进就能够了(UBB代码是粗体).
www.test.net
按上例套进,UBB代码会主动对URL发生链接,并包管当用户点击新的窗口时这个链接是翻开着的。
电子邮件链接
在你的信息里到场电子邮件的超等链接,只需依照下例套进就能够了(UBB代码是粗体)
abc@263.net
按上例套进,UBB代码会对电子邮件主动发生链接。
到场图像
在你的信息里到场图像,只需按下例套进就能够了(UBB代码是粗体).
在上例中,UBB代码会主动让图像在你的信息里显现。
其他Tag
另有这些tag,usmallh1h2h3h4h5h6strikeblinksubsupdelprebig,这些tag的功效与html的功效同等
这是一个题目
是必需的
让一段笔墨利用色彩显现
这是一个特别的tag
[#ff0000]一段白色的字[/#]
#前面跟的色彩的16进制RGB代码,如白色是ff0000,绿色是00ff00,而蓝色是0000ff
至于其他形形色色的UBB代码的完成体例同下面的相似,我们就以下面UBB代码完成作为例子来说解“正则表达式”工具的壮大功效。
我们次要利用Replace()办法共同响应的模版,就能够便利的完成UBB代码功效了,在这里我们次要用到了两个本人编写的函数,第一个函数ReplaceTest,这个函数完成的功效次要是将“正则表达式”工具举行了封装,供应三个出口参数:
Patrn:这个参数传送的是UBB代码的婚配模版
Str:这个参数传送的是将要以UBB体例处置的字符串,好比文章内容。
ReplStr:这个参数传送的是婚配成的HTML代码言语。
ReplaceTest函数的出口参数是经由模版婚配交换以后的字符串。
ReplaceTest函数代码以下:
FunctionReplaceTest(patrn,str,replStr)
DimregEx,str1创建变量。
str1=trim(str)
SetregEx=NewRegExp创建正则表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=true设置是不是辨别巨细写。
ReplaceTest=regEx.Replace(str1,replStr)作交换。
setregEx=nothing‘烧毁正则表达式工具
EndFunction
我们要编写的第二个函数是:UBB()函数。这个函数完成的功效就是将一段文本举行UBB功效的转换。这个函数仅仅只要一个出口参数:
Str这个参数传送要被处置的字符串。
UBB函数的出口参数是经由UBB代码处置事后的字符串。
UBB函数的代码以下:(程序中有具体正文信息)
FunctionUBB(str)
dimi,temp‘声明变量
i=1
temp=""
dowhileinstr(i,str,"[/"]>=1 ‘假如没有到达字符串的开端
iftrim(temp)=""then
temp=ReplaceTest("()(S+)()",str,"<i>$2</i>") ‘举行UBB代码的模版婚配与交换
else
temp=ReplaceTest("()(S+)()",temp,"<i>$2</i>") ‘举行UBB代码的模版婚配与交换
endif
temp=ReplaceTest("()(S+)()",temp,"<b>$2</b>") ‘举行UBB代码的模版婚配与交换
temp=ReplaceTest("()(S+)()",temp,"<big>$2</big>") ‘举行UBB代码的模版婚配与交换
temp=ReplaceTest("()(S+)()",temp,"<strike>$2</strike>")‘举行UBB代码的模版婚配与交换
temp=ReplaceTest("()(S+)()",temp,"<sub>$2</sub>")‘举行UBB代码的模版婚配与交换
temp=ReplaceTest("()(S+)()",temp,"<sup>$2</sup>")
temp=ReplaceTest("()(S+)()",temp,"<pre>$2</pre>")
temp=ReplaceTest("()(S+)()",temp,"<u>$2</u>")
temp=ReplaceTest("()(S+)()",temp,"<small>$2</small>")
temp=ReplaceTest("()(S+)()",temp,"<h1>$2</h1>")
temp=ReplaceTest("()(S+)()",temp,"<h2>$2</h2>")
temp=ReplaceTest("()(S+)()",temp,"<h3>$2</h3>")
temp=ReplaceTest("()(S+)()",temp,"<h4>$2</h4>")
temp=ReplaceTest("()(S+)()",temp,"<h5>$2</h5>")
temp=ReplaceTest("()(S+)()",temp,"<h6>$2</h6>")
temp=ReplaceTest("()(S+)()",temp,"<fontcolor=red>$2</font>")
这里能够增添新的UBB代码的完成模版
temp=ReplaceTest("()(S+)()",temp,"<ahref=""mailto:$2""target=_top>$2</a>")
temp=ReplaceTest("()",temp,"<imgsrc=""$2"">")
temp=ReplaceTest("()(S+)()",temp,"<ahref=""$2""target=_top>$2</a>")
temp=ReplaceTest("([#(S+)])(S+)([/#])",temp,"<fontcolor=$1>$3</font>")‘举行UBB代码的模版婚配与交换
i=i+1
loop
iftrim(temp)""then
UBB=temp ‘将经由UBB代码过滤后的字符串传出
else
UBB=str ‘将经由UBB代码过滤后的字符串传出
endif
endfunction
在函数UBB的代码中我们能够看到“$1”,“$2”,“$3”等等,这些字符串就是婚配后的字符串的代词,就好像一些“宏”一样,我们可使用他们便利取代婚配到的字符串,而不用再利用程序往记着婚配字符串的地位。经由过程这两个复杂的函数挪用,我们完成了UBB代码的功效,怎样,很复杂吧。
如许,我们只需在显现文章的时分挪用UBB函数,对文章内容举行处置以后,再显现到扫瞄器下面,就完成了论坛的UBB代码功效。而且,你能够便利的在函数UBB增加必要的UBB代码婚配交换模版,从而能够不休的扩大你的UBB代码的功效。
(以上程序均在WinNT4.0英文版SP5,IIS4.0,IE5.x中运转经由过程)
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 不能只是将它停留在纸上谈兵的程度上。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
页:
[1]