ASP编程:在ASP中使用“正则表达式” 工具完成UB...
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。ubb|工具|正则 上一次,我们谈到在ASP中怎样使用“正则表达式”工具来完成各类数据的校验,文中形貌了正则表达式工具的壮大功效,接上去,我们来看看有关“正则表达式”工具的其他功效。当我们在网上冲浪的时分,特别是扫瞄各种论坛的时分,常常会晤到“UBB代码”这个词语。甚么是UBB代码呢?UBB代码是HTML的一个变种,是UltimateBulletinBoard(外洋一个BBS程序,国际也有很多中央利用这个程序)接纳的一种特别的TAG。为了不用户偶然大概成心的HTML代码对论坛的打击,各类论坛基础上都屏障了HTML代码,可是为了使得论坛加倍“多姿多彩”,论坛城市响应的开放一些自界说的Tag标签,相似于HTML中的Tag,好比“,,,”,如许,能够供应一些同等于HTML代码的功效,又制止了论坛遭到歹意打击,这些自界说的各类Tag就是俗称的UBB代码。眼下时兴的论坛均撑持UBB代码,好比:http://www。chinaasp。com(动感手艺收集)的论坛就很好的撑持UBB代码。如今,我们一同利用“正则表达式”工具来完成我们本人的丰厚多彩的UBB代码吧。起首,你的服务器端(IIS大概PWS)要有VBScript5.0的撑持情况,一样平常指要安装了IE5.X就已能够撑持“正则表达式”工具了。
关于“正则表达式”工具的罕见办法、属性的利用办法,我在本刊的“在ASP中使用“正则表达式”工具完成数据的校验”一文中已有具体先容了,能够拜见那一篇文章,在这里,我次要先容一下完成“UBB代码”的次要正则表达式工具办法:Replace()办法。
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代码是粗体)
uestc95@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在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
页:
[1]