易网时代-编程资源站
Welcome
首页
/
网页编程
/
ASP
/
ASP编程入门进阶(三):接触脚本程序
有了前面的html中关于form的强化知识,是不是在想,下面就可以开始ASP之旅呢?未必。
一般系统学过ASP的编程人员都会切身体会到:在系统学习ASP的内置对象和内置组件之前,学会脚本语言永远是至关重要的。
为什么这么说呢?为什么要学脚本语言呢?ASP和脚本语言又有什么关系呢?
首先说说ASP是贵为何物吧。ASP是Microsoft Active Server Pages的简称,它是一种服务器端脚本环境,可用来创建交互式 Web 页并建立强大的 Web 应用程序。可以表明ASP是一种基于服务器端的脚本环境,那就明白ASP为什么需要IIS支持了,因为IIS即为常用的一类web服务器;那也就明白为什么要学脚本语言了,因为ASP提供的是一种脚本环境。
再次需要说明的是,ASP只是一种环境,而非一种语言。如果真要形象化地说是ASP是网络编程语言的话,那也是属于一个
html+脚本+asp提供的内置对象及组件
的功能强大的混合语言。
所以,学点脚本非常重要!其实无论是学脚本语言,还是其它语言,我认为首先需要了解的是该语言涵盖的各类特性,包括:
数据类型、事件、方法、 对象、属性、语法等
当然这都是些空谈,正如在大学课堂上的某计算机语言课一样,搞纯研究性的就是觉得有些索而无味。还是实用些的好,能解决问题的程序才是好程序(印证能逮到老鼠的猫就是好猫的经典圣语,呵呵)
当然,语言这东西还是要你去好好钻研的,比如你写求绝对值的程序,其实一个abs()函数就搞定了。再比如你会vb脚本,但把同样程序替换成java脚本就会出错,它们的数据类型不同,语句语法也不一样啊。正如说中文和外文一样,要会发音标(数据类型),会如何发音(方法),如何说成一句话(语法)……呵呵,有点让你难受吧。行!直接了当。你以后需要注意的是语言的函数、语法。当然也不是让你全看,按照教程中的遇到一个掌握一个。教程学完,差不多也结束了。呵呵,你要相信我。
目前有两种主要的脚本语言:VbScript和JavaScript。因为VbScript作为IIS默认的服务器脚本,所以我们所谈所学的基本是围绕VbScript为脚本的ASP的,当然也不排除有的时候使用javascript.
举一个很简单的例子:
<script language="vbscript"><!-- sub button1_onclickmsgbox (" 欢迎使用vbscript! " ) end sub--></script><script language="javascript"><!-- function b213() {alert("欢迎使用javascript!")}--></script><form><input type="button" name="button1" value="vbs"><br><input type="button" name="button2" value="js" onclick="b213()"></form>vbscript中的Sub 就是一个事件过程。过程名包含两部分:一部分为按钮名,即 Button1(从 < INPUT > 标记中的 NAME 属性获取);另一部分为事件名,即 OnClick。两部分由下划线 (_) 连接。单击按钮时,Internet Explorer 查找并运行相应的事件过程,即 Button1_OnClick,而MsgBox 就是一个函数,对于它更具体的参数,你就好好看下了。
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
一时来劲,可能大家都看到网上有种狂恶心的对话框组,原理是什么呢?请看:
<script language="vbscript">msgbox"你知道你会点确定的。。。。。。。"msgbox"不点也要点。。。。。。。。"msgbox"没办法是吧。。。。。。。。。。?"msgbox"要不网页打不开啊。。。。。。"msgbox"这招损人吧。。。。。。。。。"msgbox"真想揍揍站长。。。。。。。。。"</script>其实站长用这些玩弄别人的时候,先玩弄了自己:因为这都是他想出来的啊:)呵呵,我没有损大家的意思,只是为了学习。
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
在来个开页和退页弹出对话框的原理吧
<script language="vbscript"><!--sub window_onload() msgbox"welcome you!"end subsub window_onunload() msgbox"see you late!"end sub--></script>开页显示“welcome you!”,关页显示“see you late!”
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
以上只是一个
显示对话框msgbox
,当然还有
书写对话框inputbox
也顺便看下吧。
<script language="vbscript"><!--dim strnamestrname=inputbox("enter your name please:","enter your name","cnbruce")document.write(strname&",welcome you!<p>")--></script>有关inputbox的想关参数也去看看吧。
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
再来看看几个实用的函数:
len():返回字符串长度或者变量的字节长度
lef():截取一个字符串的前部分内容
right():截取一个字符串的后部分内容
<script language=vbs>text="1234567890abcdefgh"i=10lentext=len(text)lefttext=left(text,i)righttext=right(text,i)alert ("文本长度是:"&lentext)alert ("文本左取"&i&" 得的是:"&lefttext)alert ("文本右取"&i&" 得的是:"&righttext)</script>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
根据这几个,经常看到的长文章后面加“......”的情况就是如下:
<script language=vbs>text="123 4567 8fds90 abcde fghxcfv"i=10if len(text)>i then "如果文本长度大于给定的值text=left(text,i)"则提取前段的i位的字符串alert (text&"...")elsealert (text)end if</script>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
还有个比较重要的
函数replace()
在字符串中查找,替代指定的字符串
replace(strtobesearched,strsearchfor,strreplacewith)
strtobesearched是字符串; strsearchfor是被查找的子字符串;strreplacewith 是用来替代的子字符串。
下面的一个就是很有用的文字转换程序
<script language=vbs>text="妈的,我操"text=replace(text,"妈的","MD") text=replace(text,"操","CAO") alert (text)</script>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
经常在发送EMAIL时,添加多个地址,中间采用“;”号进行分隔,那具体怎么分解接受过来的多个EMAIL地址呢?采用Split函数:Split 函数从字符串中返回数组。
<script language=vbs>cnbruce="cnbruce@126.com;cnbruce@it365cn.com;root@cnbruce.com"MyArray = Split(cnbruce, ";")a=MyArray(0)b=MyArray(1)c=MyArray(2)alert(a)alert(b)alert(c)</script>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
这些都是比较现实较好玩的些,玩中学习也不错:)但毕竟我们是要编程的,说到编写程序,我知道程序结构可以分:
1,顺序结构:
就是最普通的,从上往下,从左往右执行的程序
2,选择结构:
给你两个条件,要不这样(if ... then),要不那样(else),任君选择:)
3,循环结构:
给你一个最大发挥的空间,在不超出这个范围内进行活动(循环),否则自动退出(跳出循环)。
再复杂的程序也无非是由这三种结构综合嵌套运用过来的,你说是吧。
顺序结构没多少要说,因为程序执行基本都是这方向。
来看看选择结构,当然选择结构也可以嵌套。
<body>hello,<script language="vbscript"><!--dim thishourthishour=hour(time)if thishour<=12 then document.bgcolor="red" document.fgcolor="black" document.write("上午好!")else if thishour<=18 then document.bgcolor="blue" document.fgcolor="white" document.write("下午好!")else document.bgcolor="green" document.fgcolor="yellow" document.write("晚上好!")end if end if--></script>本页的作用是根据不同时间显示不同颜色和欢迎信息。</body>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
以上程序很简单吧,只要能认识英文就会懂程序(我是这么理解的:)
先把现在的小时提交出来:hour(time);
然后和12比较判断,如果<=12,肯定是上午了,否则就是下午和晚上;
否则里面继续条件判断,如果时间再<=18的话,那肯定就是下午了;
最后,不用说,瞎子猜猜也知道是晚上了:)
有关上一程序中的document.bgcolor就是文档的背景色,document.fgcolor就是文档的前景色(文字色),下一程序是动态改变背景颜色的。
<script language="vbscript"><!--sub setbgcolor(bcolor)document.bgcolor=bcolorend sub--></script><form><input type="radio" name="color" onclick=setbgcolor("red")>red<br><input type="radio" name="color" onclick=setbgcolor("green")>green<br><input type="radio" name="color" onclick=setbgcolor("blue")>blue<br><input type="radio" name="color" onclick=setbgcolor("yellow")>yellow<br><input type="radio" name="color" onclick=setbgcolor("gray")>gray<br></form>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
有关
条件选择结构的嵌套
再show出一个表单检测的程序
<html><head><title>abc</title><script language="vbscript"><!--sub btnsubmit_onclick if form1.name.value<>"" then if form1.addr.value<>"" thenif form1.email.value<>"" thenif instr(form1.email.value,"@")<>0 and instr(form1.email.value,".")<>0 then form1.submitelse alert"email error!"end ifelsealert "enter your email!"form1.elements("email").focus end if elsealert "enter your address!"form1.elements("addr").focus end if else msgbox "enter your name please!" form1.elements("name").focus end ifend sub--></script></head><body><form name="form1" method=post action="bug.html">your name:<input type="text" name="name"><br>your addr:<input type="text" name="addr"><br>your email:<input type="text" name="email"><br><input type="button" name="btnsubmit" value="submit"></form></body></html>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
程序是给出来了,但看起来比较难懂,有时程序执行时间也比较重要,所以得精简程序代码。
正所谓:写程序容易,写经典程序难啊,那上面的程序还可以换种思维方式。改用javascript(注:学的是编程思想,不要太过计较脚本类型)
<html><head><title>abc</title><script language="javascript"><!--function form1_onsubmit(){if (document.form1.name.value==""){ alert("请设定您的登陆名。") document.form1.name.focus() return false }else if(document.form1.addr.value==""){alert("请填写您的地址。") document.form1.addr.focus() return false }else if(document.form1.email.value==""){alert("请填写您的E-Mail地址。") document.form1.email.focus() return false }}--></script></head><body><form name="form1" onsubmit="return form1_onsubmit()">your name:<input type="text" name="name"><br>your addr:<input type="text" name="addr"><br>your email:<input type="text" name="email"><br><input type="submit" name="submit" value="submit"></form></body></html>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
最后来看下
循环结构
吧:1到500可不是一个一个写出来的。
<script language=vbs>for i= 1 to 500 document.write(i&"<br>")next</script>
[Ctrl+A 全部选择进行拷贝 提示:可先修改部分代码,再点击运行]
当然循环不只可以用for,还可以用do while...loop等
反正程序这东西是代替我们少做了许多重复单一无聊的事——只要你合理利用程序。
应该有些成就吧,学语言,学编程就是学语法语义,学编程架构思想。
当然这要你有扎实的本语言的基础,基础是什么?你知道哪些
函数
吗?你知道怎么用程序怎么判断偶数吗(包含了
运算
)?你知道如何进行表单检测吗?你知道哪三种程序架构吗?
函数参看:
http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=245
呵呵,把以上的程序吃透,最好再多看看脚本参考手册,跟我就可以开始ASP的上路了。
补:
Function过程与Sub过程类似,但是Function过程可以返回值。
Function过程也可以使用由调用过程传递的常数、变量或表达式作为参数。如果Function过程无任何参数,则Function语句必须包含括号()。
Function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名。Function返回值的数据类型总是Variant。
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图