1

来源:互联网 发布:淘宝自定义背景 编辑:程序博客网 时间:2024/04/23 16:40

函数源代码:
<%
Function IsValidEmail(Email)
ValidFlag = False
If (Email <> "") And (InStr(1, Email, "@") > 0) And (InStr(1, Email, ".") > 0) Then
atCount = 0
SpecialFlag = False
For atLoop = 1 To Len(Email)
atChr = Mid(Email, atLoop, 1)
If atChr = "@" Then atCount = atCount + 1
If (atChr >= Chr(32)) And (atChr <= Chr(44)) Then SpecialFlag = True
If (atChr = Chr(47)) Or (atChr = Chr(96)) Or (atChr >= Chr(123)) Then SpecialFlag = True
If (atChr >= Chr(58)) And (atChr <= Chr(63)) Then SpecialFlag = True
If (atChr >= Chr(91)) And (atChr <= Chr(94)) Then SpecialFlag = True
Next
If (atCount = 1) And (SpecialFlag = False) Then
BadFlag = False
tAry1 = Split(Email, "@")
UserName = tAry1(0)
DomainName = tAry1(1)
If (UserName = "") Or (DomainName = "") Then BadFlag = True
If Mid(DomainName, 1, 1) = "." then BadFlag = True
If Mid(DomainName, Len(DomainName), 1) = "." then BadFlag = True
ValidFlag = True
End If
End If
If BadFlag = True Then ValidFlag = False
IsValidEmail = ValidFlag
End Function
%>
用法举例:
IsValidEmail("my_263_email@263.net") 返回Ture
IsValidEmail("zh99wj@tonghua.com.cn") 返回Ture
IsValidEmail("myemail263.net") 返回False
IsValidEmail("my_263_email@263) 返回False
4. Script Encoder是免费软件。该加密软件可以从微软网站下载:http://msdn.microsoft.com/scripting/vbscript/download/x86/sce10en.exe。下载后,运行安装即可。

ASP是基于Windows NT 4.0、Windows 9X的动态站点设计技术,我们可以通过它来创建动态的、交互的、高性能的Web
应用程序。

  与传统的动态技术相比,ASP具有可直接和HTML集成、易于创建、无需手工编译、面向对象和易于通过Active Server
Component来进行功能扩展等特点,因而在企业级Internet/Intranet应用中具有美好前景。但针对不同的商务逻辑,我们
需通过自制功能组件、改善软件体系结构等途径来提升ASP页面的商务计算能力。具体做法如下:

  ■在ASP页面中使用自制的功能组件对象

  作为IIS的一个组成部分,ASP提供了一个无需编译的集成开发环境,开发人员可以把HTML、VBScript或Jscript、ASP
脚本和ActiveX组件等结合在一起,从而建立一个动态的、功能强大的Web应用系统。ASP脚本相当于粘合剂,把一个个具有
特定功能的组件粘合在一起,以形成最终的软件产品。虽然ASP提供了很多内置的对象和组件,但对于复杂的商务应用,必
须根据商务要求自行研制开发具有某些特色的组件对象,以完成特殊的任务。我们可以使用Visual C++、Visual Basic、
Delphi和Java等语言开发下列两种类型的组件对象:

  1.由类打包而成的.dll文件,称为ActiveX DLL。经注册器注册后,在ASP脚本中可通过“Set 对象名=类名”来引
用。对象在这种使用过程中是在服务器的后台运行的,其运行的结果通过系统自动生成的HTML作用到前端浏览器。这一类
组件用来处理商务逻辑计算,通常也称为事务逻辑单元。

  2.生成.ocx文件,一般作为可视化的对象,称为ActiveX Control。通常组件制作完成并按下载的要求打包后,会生
成.cab文件,我们可直接将其嵌入.ASP主页中。在页面中插入时需使用HTML语言的标记加以引用。对象在这种使用方
式下要先从服务器下载,然后在客户端的浏览器运行。在第一次下载时被展开成相关的.dll和.ocx文件进行本地安装
注册。以后再使用时,就可直接从本地获得,不必每次重复下载。这一类组件常用来在前端的浏览器完成信息的表现和展
示任务。

  ■使用MTS构建实用的三层体系结构

  在“浏览器客户/Web应用服务器/数据库服务器”结构体系中,IIS只提供了对页面的多线程支持,而不负责对组件本
身的管理。多个用户同时访问嵌入了ActiveX DLL组件的ASP网页时,势必造成服务器端网络的拥塞,从而带来系统性能的
下降。为了有效支持多用户对组件的访问,微软推出了MTS(Microsoft Transaction Server)事务服务器。MTS是一个功
能强大的开发环境,为开发和配置分布式、基于组件的应用程序提供了一个应用程序编程模型和一个程序运行的基础环
境,能方便地用于开发和配置高性能、可测的和可靠的Internet和Intranet企业级应用程序。它提供了数据连接缓冲、线
程管理和事务管理等多项服务,很好地解决了多客户端利用组件频繁访问后台数据库等一系列问题。IIS担负页面的服务和
管理工作,MTS则负责页面中嵌入组件的服务和管理工作,两者结合在一起组成中间层的应用服务器,从而构建实用的三层
体系结构。

  安装MTS所需的软件环境为Microsoft Windows NT 4.0或更高版本,或安装了具有DCOM支持的Windows 9X(Windows 9X
的DCOM支持是由IE4.0安装的)。若在Windows NT环境下,首先必须安装Windows NT Service Pack 3或更高版本,然后使
用Windows NT 4.0 Option Pack来安装MTS。如果希望组件能访问数据库,则需使用Microsoft SQL Server 6.5或更高版
本。若计划创建Internet应用程序,服务器端应使用IIS4.0或者更高版本,客户端采用IE4.0或更高版本。

  MTS拥有直观友好的界面,操作起来十分简单。向MTS添加组件的一般步骤如下:

  1.用支持开发ActiveX的工具语言创建ActiveX DLL;

  2. 对所开发的ActiveX组件进行注册;

  3.进入Transaction Server Explorer,利用“安装软件包”选项创建空的软件包;

  4.打开空软件包的组件组,向其中加入已注册好的ActiveX DLL;

  5.在ASP页面中使用该ActiveX DLL;

  6.调整注册器的服务参数以适应实际应用的需要。

  此后,当该组件再被调用时,MTS会自动接管来自客户端的请求,并提供统一的服务。

 VBScript函数补习课
程序员之家 作者:不祥 日期:2004-2-12 23:38:00

--------------------------------------------------------------------------------
 
1、我怎么在一个日期上加上一个日期?

DateAdd( interval , number , date )

参数

interval 必选项。字符串表达式,表示要添加的时间间隔。
number 必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date 必选项。 Variant 或要添加 interval 的表示日期的文字。

interval 参数可以有以下值:

yyyy  年 
q  季度 
m  月 
y  一年的日数 
d  日 
w  一周的日数 
ww  周 
h  小时 
n  分钟 
s  秒 

例子:Date= DateAdd( "m" , 1 , "31-01-2004" ) 得出的结果是 2004年2月31日?呵呵,不是,是2004年2月29日,DateAdd()不会返回错误的日期

2、我怎么得到两个日期的时间间隔?

DateDiff( interval , date1 , date2)

参数

interval 必选项。字符串表达式表示用于计算 date1 和 date2 之间的时间间隔。
date1, date2 必选项。日期表达式。用于计算的两个日期。

interval 参数可以有以下值:

设置 描述 
yyyy  年 
q  季度 
n  月 
y  一年的日数 
d  日 
w  一周的日数 
ww  周 
h  小时 
m  分钟 
s  秒 


例子: DiffDate=DateDiff( "d" , Now , "31-01-2004" )

3、我怎么精确我的计算结果?

FormatNumber( expression [, NumDigitsAfterDecimal [, IncludeLeadingDigit [, UseParensForNegativeNumbers [, GroupDigits ]]]] )

参数
Expression 必选项。要被格式化的表达式。
NumDigitsAfterDecimal 可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。
IncludeLeadingDigit 可选项。三态常数,指示是否显示小数值小数点前面的零。
UseParensForNegativeNumbers 可选项。三态常数,指示是否将负值置于括号中。
GroupDigits 可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。
设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值:

常数 值 描述 
TristateTrue  -1  True 
TristateFalse  0  False 
TristateUseDefault  -2  使用计算机区域设置中的设置。 

例子:将1/3格式化为四位小数,带小数点前0的格式 FormatNumber(1/3, 4,-1)

4、我怎么得到现在的时间、日期、年份、月份等?

时间:Now()
日期:Date()
年份:Year(Date())
月份:Month(Date())
天数:Day(Date()))
小时:Hour(now())
分钟:Minute(Now())
秒:Second(Now())

5、我怎么把从数据库读出的新闻标题显示部分?

Left( string , length )

参数
string 字符串表达式,其最左边的字符被返回。
Length 数值表达式,指明要返回的字符数目。如果是 0,返回零长度字符串 ("");如果大于或等于 string 参数中的字符总数,则返回整个字符串
Len( string | varname )

参数
string 任意有效的字符串表达式。Varname 任意有效的变量名。

假设新闻标题为rs("topic"),我们只想输出10个字符,对于少于10个字符的则输出全部,那么我们这么写:
<%
if Len(rs("topic"))>10 then
Response.Write Left(rs("topic"),8)&"..." '也不要一定8,怎么好看怎么设置,因为后面加了...所以我们少截取一些
else
Reponnse.Write rs("topic")
end if
%>
 
 
巧用FileSystem组件实现WEB应用中的本地特定打印
程序员之家 作者:运气(转) 日期:2001-9-16

--------------------------------------------------------------------------------
 
1、引言
随着Internet的飞速发展,许多企业都纷纷开发基于WEB的业务应用系统。一般情况下,基于WEB的业务应用都采用三层或三层以上的结构,前台即客户端是普通的WEB浏览器,中间业务逻辑应用层存放于WEB服务器上,由WEB服务器上的服务构件访问后台数据库。为了业务系统与Internet的互联,WEB服务器和数据库系统均托管在IDC(互联网数据中心),因而需要从托管在 IDC的服务器上提取业务数据在本地打印输出。在客户端浏览器只能打印简单的HTML页面的情况下,要求更为强大灵活的打印输出功能;通过采用相关的技术对浏览器的功能进行扩展,能够完成更复杂的数据打印的任务,如收条、回执等。笔者曾经为一网络教育公司开发教育管理软件时采用FileSystem组件实现在本地打印三联收款凭证和准考证等的功能。
2、FileSystem组件使用简介
FileSystem组件其实是一个ActiveX控件,其存在于WINDOWS平台中(不管是Win98、Win2000,还是NT环境都包含该组件。),CLSID:0D43FE01-11CF-8940-00A0C9054228。熟悉ASP编程人可能都使用过FileSystem组件,一般情况下该组件用在服务器端,用来对文本文件、文件夹及驱动器进行访问和控制。可以通过两种方法创建FileSystem组件的对象实例:
1、使用ASP的内置对象SERVER的方法Server.CreateObject来创建服务器端对象的实例。
2、使用Vbscript脚本函数CreateObject来创建客户端对象的实例(也可以在服务器端用该方法,但有时会出错,一般不使用;)。
FileSystem组件对文本文件进行操作有如下方法:
CreateTextFile(Filename,[Overwrite if exists],[Unicode/ASCII]) //创建文本文件
OpenTextFile(Filename,[Input/output mode],[Create if not exists],[Format]) //打开文本文件
CopyFile(Filename1,Filename2,[Overwrite]) //拷贝文本文件
MoveFile (Filename1,Filename2) //移动文本文件
DeleteFile (Filename) //删除文本文件
GetFile (Filename) //获得文本文件
FileExists (Filename) //判断文本文件是否存在
FileSystem组件对文件夹和驱动器也有和文本文件相类似的方法,在此不一一赘述。
其实,FileSystem组件也可使用于客户端,采用创建FileSystem组件对象实例的第二种方法即可以使用该组件对客户端系统的文本文件、文件夹及驱动器进行访问和控制。因为微软平台带有FileSystem组件,所以对于微软平台的客户端则不需要从远程服务器下载,其在安装操作系统时会自己安装并注册;而对于其他平台的客户端则须安装插件并下载FileSystem组件。
3、本地端特定打印的实现机制
利用FileSystem组件实现本地端特定打印的过程如图所示:
<IMG SRC="http://www.computerworld.com.cn/htm/app/aprog/01_9_14_5.jpg" border=0>
1、客户端向WEB服务器发送数据请求;
2、WEB服务器根据业务处理逻辑与后台数据库进行交互,取得所需数据形成HTML页面,并附带有FileSystem组件对象的VBScript脚本,向客户端浏览器发回HTML页面;
3、在客户端运行脚本,脚本取得HTML页面构件的数据,建立与打印机的连接,向打印机输出打印数据。
前两步与一般的WEB应用没有什么区别,需要说明的是第三步:首先使用Vbscript脚本函数CreateObject来创建FileSystem组件对象的实例;然后调用该实例创建文本文件的CreateTextFile方法,把打印端口LPT1或LPT2作为文件名参数,并将可覆盖文件参数设为TRUE,建立与打印机的连接;调用获得的打印机文本文件流实例的写文本方法WriteLine向打印机输出打印的内容。
4、程序示例
客户端脚本:
<script Language=VBScript>
function print_onclick //打印函数
dim label
label=document.printinfo.label.value //获得HTML页面的数据
set objfs=CreateObject("Scripting.FileSystemObject") //创建FileSystem组件对象的实例
set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立与打印机的连接
objprinter.Writeline("__________________________________") //输出打印的内容
objprinter.Writeline("| |")
objprinter.Writeline("| 您打印的数据是:"&label& " |”)
objprinter.Writeline("| |")
objprinter.Writeline("|_________________________________|")
objprinter.close //断开与打印机的连接
set objprinter=nothing
set objfs=nothing // 关闭FileSystem组件对象
end function
</script>
服务器端脚本:
<%………
set conn=server.CreateObject ("adodb.connection")
conn.Open "DSN=name;UID=XXXX;PWD=XXXX;"
set rs=server.CreateObject("adodb.recordset")
rs.Open(“select ……”),conn,1,1
……….%> //与数据库进行交互
HTML页面编码:
<HTML>
………
<FORM ID=printinfo NAME="printinfo" >
<INPUT type="button" value="打印>>" id=print name=print > //调用打印函数
<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据
………
</HTML>
5、说明及结论
1、使用此方法实现打印任务之前,必须调节浏览器的安全设置;在Internet选项上安全级别降低,对自己的站点充分信任,可以通过浏览器执行脚本访问本机资源。
2、本方法可以实现在局域网的打印机上打印远程服务器的数据,只须用局域网上打印机注册在本地的端口代替本地打印机端口作为创建文本文件的CreateTextFile方法的参数即可。
3、本方法可以实现根据用户选择打印的宽度、高度和数量及内容,并可重复打印。
4、不需要编写ActiveX控件即可以完成特定的打印功能,实现较为简单。
5、不足之处是需要调节浏览器的安全设置,且不支持图片和特殊字体的打
 
图片渐渐显示(遂点谈入)
程序员之家 作者:Timer(转) 日期:2001-8-31

--------------------------------------------------------------------------------
 
第一步:把如下代码加入<body>区域中
<SCRIPT FOR=window EVENT=onLoad LANGUAGE=vbscript>
image1.filters.item(0).apply()
image1.filters.item(0).transition = 12
image1.Style.visibility = ""
image1.filters(0).play(2.0)
</SCRIPT>


第二步:把如下代码加入<body>区域中
<img src="swimming.gif" border=5 id="image1"
style="visibility:hidden; FILTER:revealTrans(Duration=4.0, Transition=23);">

 
图片渐渐显示(谈入)
程序员之家 作者:Timer(转) 日期:2001-8-31

--------------------------------------------------------------------------------
 
第一步:把如下代码加入<body>区域中
<img src="http://my.6to23.com/redriver/helpor/picture/swimming.gif" name="u" border=0
alt="Image" style="filter:alpha(opacity=0)">
<script language="JavaScript">

var b = 1;
var c = true;

function fade(){
if(document.all);

if(c == true) {
b++;
}
if(b==100) {
b--;
c = false
}

if(b==10) {
b++;
c = true;
}

if(c == false) {
b--;
}
u.filters.alpha.opacity=0 + b;
setTimeout("fade()",50);
}
</script>


第二步:把<body>区域改为
<body bgcolor="#fef4d9" onLoad="fade()">
 
检测表单输入EMAIL的合法性
程序员之家 作者:不详 日期:2000-11-14

--------------------------------------------------------------------------------
 
function IsValidEmail(email)

dim names, name, i, c

'Check for valid syntax in an email address.

IsValidEmail = true
names = Split(email, "@")
if UBound(names) <> 1 then
IsValidEmail = false
exit function
end if
for each name in names
if Len(name) <= 0 then
IsValidEmail = false
exit function
end if
for i = 1 to Len(name)
c = Lcase(Mid(name, i, 1))
if InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 and not IsNumeric(c) then
IsValidEmail = false
exit function
end if
next
if Left(name, 1) = "." or Right(name, 1) = "." then
IsValidEmail = false
exit function
end if
next
if InStr(names(1), ".") <= 0 then
IsValidEmail = false
exit function
end if
i = Len(names(1)) - InStrRev(names(1), ".")
if i <> 2 and i <> 3 then
IsValidEmail = false
exit function
end if
if InStr(email, "..") > 0 then
IsValidEmail = false
end if

end function
 
下面的函数可以对Email地址格式进行检查,只有形如:
abc@abc.abc,abc@abc.abc.abc和abc@abc.abc.abc.abc状的串才能通过检查,
如下面这些非法地址都通不过:
@abc@163.net,abc@163..net,abc@163.net.,abc@163@net等等都能剔除出来。

邮件地址就这几种格式吧?比如:
swuse@yeah.net,liaojiayuan@btamail.net.cn,abc@public.yj.gd.cn
还有没有更长的?

<script language="JavaScript1.2">
function checkmail(mail)
  var strr;
  re=/(/w+@/w+/./w+)(/.{0,1}/w*)(/.{0,1}/w*)/i;
  re.exec(mail);
  if (RegExp.$3!=""&&RegExp.$3!="."&&RegExp.$2!=".") strr=RegExp.$1+RegExp.$2+RegExp.$3
  else
    if (RegExp.$2!=""&&RegExp.$2!=".") strr=RegExp.$1+RegExp.$2
    else  strr=RegExp.$1
  if (strr!=mail) {alert("请填写正确的邮件地址;return false}
  return true;
}
</script>

原创粉丝点击