仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 555|回复: 7
打印 上一主题 下一主题

[学习教程] ASP网页编程之怎样在JScript中正则表达函数的申明与应...

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:52:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。js|jscript|函数|正则作为形式婚配下文本交换、搜刮、提取的强无力工具,正则表达式(RegularExpression)的使用已从unix平台渐渐渗透到收集开辟中了,作为服务器端/客户真个剧本开辟言语JScript,正愈来愈多将正则表达式使用融进个中,以填补本身在文本上处置才能的不敷。在此,我们以JScript5.5版本为例,对个中的正则表达式的使用作一个概述。
起首我们必要辨别JScript中关于正则表达式的两个工具:RegularExpression工具和RegExp工具。
前者仅包括一个特定的正则表达式实例的信息,尔后者经由过程一个全局变量的属性来反应比来形式婚配的特征。
前者在婚配前必要指定婚配形式,即创立一个RegularExpression工具的实例,尔后能够把它传送给一个字符串办法,或是把一个字符串作为参数传送给这个RegularExpression实例的办法;尔后者无需创立,它是一个固有的全局工具,每次乐成婚配操纵了局信息被保留在这个工具的属性中。

1、RegExp工具的属性:反响比来一次乐成婚配的了局信息

input:保留实行婚配的字符串(被搜刮的方针字符串)(>=IE4)
index:保留婚配的首字符的地位*>=IE4)
lastIndex:保留婚配的字符串的下一个字符的地位(>=IE4)
lastMatch($&):保留婚配到的字符串(>=IE5.5)
lastParen($+):保留婚配了局最初一个子婚配的内容(最初一个括号的婚配内容)(>=IE5.5)
leftContext($`):保留方针字符串中婚配子字符串前的一切字符(>=IE5.5)
rightContext($):保留方针字符串中婚配子字符串后的一切字符(>=IE5.5)
$1-$9:保留婚配中最入手下手的9个子婚配(即最入手下手的9个括号内的婚配了局)(>=IE4)

2、RegularExpression工具简介
1.RegularExpression工具界说
在剧本中利用正则表达式形式婚配,起首腰设定婚配形式,办法有以下两种
(1)rgExp=/pattern*/[flags*]
(2)rgExp=newRegExp("pattern",["flags"])
注重:
a.后者形式中的本义字符“”必要用“”暗示,用以抵消JS直达义字符""的意义,不然JS起首作为本人的本义观点来注释""后的字符。
b.flags标识有以下几个(至JScript5.5版本)
g:设定以后婚配为全局形式
i:疏忽婚配中的巨细写检测
m:多行搜刮形式
2.RegularExpression工具属性
(1)rgExp.lastIndex:婚配了局前面一个字符的地位,同RegExp.lastIndex
(2)rgExp.source:reExp工具的正则表达式婚配形式
3.RegularExpression工具办法
(1)rgExp.compile(pattern,[flags])
将rgExp转化为外部格局,以加速婚配的实行,这关于大批形式分歧的婚配更无效
(2)rgExp.exec(str)
依照rgExp的婚配形式对str字符串举行婚配查找,当rgExp工具中设定了全局搜刮形式(g),则婚配查找从RegExp工具lastIndex属性所指定的方针字符串地位入手下手;若没有设置全局搜刮,则从方针字符串第一个字符入手下手搜刮。若没有任何婚配产生,前往null。
必要注重的是该办法将婚配了局放在一个数组内前往,该数组有三个属性
input:包括方针字符串,同RegExp.index
index:婚配到的子字符串在方针字符串中的地位,同RegExp.index
lastIndex:婚配到的子字符串前面一个字符的地位,同RegExp.lastIndex
(3)rgExp.test(str)
前往布尔值来反应被查找的方针字符串str中是不是存在切合婚配的形式。该办法不改动RegExp的属性
4.与正则表达式相干的办法
次要是指字符串工具中使用形式婚配的办法
(1)stringObj.match(rgExp)
依据rgExp工具的正则表达式形式查找字符串stringObj中的婚配字符项,将了局以数组情势前往。该数组有三个属性值,与exec办法前往的数组属性不异。若没有任何婚配,前往null。
必要注重的是,若rgExp工具未设定全局婚配形式,则数组0下标元素为婚配的全体内容,1~9包括了子婚配失掉的字符。若设定了全局形式,则数组包括了搜刮到的一切全体婚配项。
(2)stringObj.replace(rgExp,replaceText)
前往一个字符串,行将stringObj中切合rgExp形式婚配的字符串交换成replaceText后前往。必要注重的是stringObj自己其实不由于交换操纵而改动。若希冀stringObj中一切切合正则表达式形式的字符串被交换,则在创建正则表达式形式时要设定为全局形式。
(3)stringObj.search(rgExp)
前往第一个婚配到的子字符串的地位

标记名词注释:
地位:暗示子字符串与方针字符串首字符的偏移
reExp:暗示一个RegularExpression工具实例
stringObj:暗示一个字符串工具
pattern:正则表达式形式
flags:婚配操纵的形式标识

在实践web程序开辟中我们能够有针对性的利用正则表达式来到达我们字符串处置的请求
以下附上四个利用正则表达式的JScript例程,这些例子次要用来熟习正则表达式的利用。

1.email地点无效性检测
<scriptlanguage=JScript>
functionvalidateEmail(emailStr)
{
varre=/^[w.-]+@([0-9a-z][w-]+.)+[a-z]{2,3}$/i;
//或varre=newRegExp("^[w.-]+@([0-9a-z][w-]+.)+[a-z]{2,3}$","i");
if(re.test(emailStr))
{
alert("无效email地点!");
returntrue;
}
else
{
alert("有效email地点!");
returnfalse;
}
}
</script>

2.字符串交换操纵
<scriptlanguage=JScript>
varr,pattern,re;
vars="TheraininSpainfallsmainlyintheplainfalls.";
pattern=/falls/ig;
re=s.replace(re,falling);
alert(s=+s+
+re=+re);
</script>

3.形式查找字符串
<scriptlanguage=JScript>
varindex,pattern;
varstr="fourforfallfellfallenfallsingfallfallswaterfalls";
pattern=/falls/i;
index=str.search(pattern);
alert(Thepositionofmatchisat+index);
</script>

3.正则表达式属性例程
<scriptlanguage=JScript>
functionmatchAttrib()
{
vars=;
varre=newRegExp("d(b+)(d)","ig");
varstr="cdbBbdbsbdbdz";
while((arr=re.exec(str))!=null)
{
s+="=======================================<br>";
s+="$1returns:"+RegExp.$1+"<br>";
s+="$2returns:"+RegExp.$2+"<br>";
s+="$3returns:"+RegExp.$3+"<br>";
s+="inputreturns:"+RegExp.input+"<br>";
s+="indexreturns:"+RegExp.index+"<br>";
s+="lastIndexreturns:"+RegExp.lastIndex+"<br>";
s+="lastMatchreturns:"+RegExp.lastMatch+"<br>";
s+="leftContextreturn</p>asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关.
飘灵儿 该用户已被删除
沙发
发表于 2015-1-19 21:33:10 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
海妖 该用户已被删除
板凳
发表于 2015-1-24 17:41:14 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
再现理想 该用户已被删除
地板
发表于 2015-2-2 11:24:52 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
柔情似水 该用户已被删除
5#
发表于 2015-2-7 18:54:47 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-7 04:09:52 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
灵魂腐蚀 该用户已被删除
7#
发表于 2015-3-14 09:22:28 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-21 02:10:24 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 10:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表