首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> ASP.NET教程
JScript中正则表达函数的说明与应用-ASP教程,正则表达式
作者:网友供稿 点击:17
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
作为模式匹配下文本替换、搜索、提取的强有力工具,正则表达式(regular expression)的应用已经从unix平台逐渐渗入到网络开发中了,作为服务器端/客户端的脚本开发语言jscript,正越来越多将正则表达式应用融入其中,以弥补自身在文本上处理能力的不足。在此,我们以jscript5.5版本为例,对其中的正则表达式的应用作一个概述。
首先我们需要区分jscript中关于正则表达式的两个对象:regular expression对象和regexp对象。
前者仅包含一个特定的正则表达式实例的信息,而后者通过一个全局变量的属性来反映最近模式匹配的特性。
前者在匹配前需要指定匹配模式,即创建一个regular expression对象的实例,而后可以把它传递给一个字符串方法,或是把一个字符串作为参数传递给这个regular expression实例的方法;而后者无需创建,它是一个固有的全局对象,每次成功匹配操作结果信息被保存在这个对象的属性中。

一、regexp对象的属性:反应最近一次成功匹配的结果信息

input :保存执行匹配的字符串(被搜索的目标字符串)(>=ie4)
index :保存匹配的首字符的位置*>=ie4)
lastindex :保存匹配的字符串的下一个字符的位置(>=ie4)
lastmatch($&) :保存匹配到的字符串(>=ie5.5)
lastparen($+) :保存匹配结果最后一个子匹配的内容(最后一个括号的匹配内容)(>=ie5.5)
leftcontext($`) :保存目标字符串中匹配子字符串前的所有字符 (>=ie5.5)
rightcontext($):保存目标字符串中匹配子字符串后的所有字符 (>=ie5.5)
$1 - $9 :保存匹配中最开始的9个子匹配(即最开始的9个括号内的匹配结果)(>=ie4)

二、regular expression对象简介
1.regular expression对象定义
在脚本中使用正则表达式模式匹配,首先腰设定匹配模式,方法有如下两种
(1)rgexp=/pattern*/[flags*]
(2)rgexp=new regexp("pattern",["flags"])
注意:
a.后者模式中的转义字符“\”需要用“\\”表示,用以抵消js中转义字符"\"的意义,否则js首先作为自己的转义概念来解释"\"后的字符。
b.flags标识有以下几个(至jscript 5.5版本)
g:设定当前匹配为全局模式
i:忽略匹配中的大小写检测
m:多行搜索模式
2.regular expression对象属性
(1)rgexp.lastindex:匹配结果后面一个字符的位置,同regexp.lastindex
(2)rgexp.source:reexp对象的正则表达式匹配模式
3.regular expression对象方法
(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:表示一个regular expression对象实例
stringobj:表示一个字符串对象
pattern:正则表达式模式
flags:匹配操作的模式标识

在实际web程序开发中我们可以有针对性的使用正则表达式来达到我们字符串处理的要求
如下附上四个使用正则表达式的jscript例程,这些例子主要用来熟悉正则表达式的使用。

1.email地址有效性检测
<script language=jscript>
function validateemail(emailstr)
{
var re=/^[\w.-]+@([0-9a-z][\w-]+\.)+[a-z]{2,3}$/i;
//或 var re=new regexp("^[\\w.-]+@([0-9a-z][\\w-]+\\.)+[a-z]{2,3}$","i");
if(re.test(emailstr))
{
alert("有效email地址!");
return true;
}
else
{
alert("无效email地址!");
return false;
}
}
</script>

2.字符串替换操作
<script language=jscript>
var r, pattern, re;
var s = "the rain in spain falls mainly in the plain falls.";
pattern = /falls/ig;
re = s.replace(re,falling);
alert(s = + s + \n + re = + re);
</script>

3.模式查找字符串
<script language=jscript>
var index, pattern;
var str = "four for fall fell fallen fallsing fall falls waterfalls ";
pattern = /\bfalls\b/i;
index = str.search(pattern);
alert(the position of match is at + index);
</script>

3.正则表达式属性例程
<script language=jscript>
function matchattrib()
{
var s=;
var re = new regexp("d(b+)(d)","ig");
var str = "cdbbbdbsbdbdz";
while((arr = re.exec(str))!=null)
{
s += "=======================================<br>";
s += "$1 returns: " + regexp.$1 + "<br>";
s += "$2 returns: " + regexp.$2 + "<br>";
s += "$3 returns: " + regexp.$3 + "<br>";
s += "input returns : " + regexp.input + "<br>";
s += "index returns : " + regexp.index + "<br>";
s += "lastindex returns : " + regexp.lastindex + "<br>";
s += "lastmatch returns: " + regexp.lastmatch + "<br>";
s += "leftcontext returns: " + regexp.leftcontext + "<br>";
s += "rightcontext returns: " + regexp.rightcontext + "<br>";
s += "lastparen returns: " + regexp.lastparen + "<br>";
s += "arr.index returns: " + arr.index + "<br>";
s += "arr.lastindex returns: " + arr.lastindex + "<br>";
s += "arr.input returns: " + arr.input + "<br>";
s += "re.lastindex returns: " + re.lastindex + "<br>";
s += "re.source returns: " + re.source + "<br>";
}
return(s); //return results.
}
document.write(matchattrib());
</script>




文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·ASP.NET三层架构示例(中文版)-.NET教程,面向对象编程
·C#自定义控件制作篇-.NET教程,C#语言
·asp.net上传图片时,产生预览
·关于DataGrid 数据导入Excel乱码-ASP教程,数据库相关
·ado.net中数据库连接方式
·用asp.net(c#)连接oracle数据库的方法
·网页制作小技巧-ASP教程,ASP应用
·动态改变asp.net网页的标题
·asp.net中利用cookies保持客户端信息
·关于C#中switch语句的一点注意-.NET教程,C#语言
最新文章
·用vb.net 2005编写定时关机程序_vb/vb.net教程
·vb.net实现窗体图标最小化到状态栏_vb/vb.net教程
·如何提高google adsense单价:渠道篇_网赚技巧
·做百度主题推广的经验谈_网赚技巧
·解读电子商务规划关键词_站长心得
·手把手教你建立自己的网站_站长心得
·学网页设计与网页制作,你该做些什么?_站长心得
·写给新人的google排名知识_google推广
·google网络推广adwords帐户申请解析_google推广
·如何合理提高google adsense的收入_google推广
相关主题
  • jscript中正则表达式用法详解(附例子:jscript做语法加亮显示) _javascript教程
  • jscript中值类型的封箱与拆箱_javascript教程
  • jscript错误代码及相应解释-ASP教程,ASP应用
  • JScript.Net 之 SqlDataReader读取数据-.NET教程,数据库应用
  • jscript错误代码及相应解释大全-ASP教程,脚本编码
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭