ActionScript编程 匹配多个字符或字符串

合集下载

ActionScript编程 搜索匹配的字符串

ActionScript编程  搜索匹配的字符串

ActionScript编程搜索匹配的字符串作用:获取一个字符或字符串,并对目标字符串中所有的字符进行匹配,返回匹配成功的字符串或索引号。

说明:正则表达式在程序应用中,除了可以匹配各种字符串外,还可以对字符串进行搜索。

在使用正则表达式搜索字符串时,需要将其与字符串实例的search()方法和match()等方法结合使用。

其中,search()方法用来检索字符串实例,返回包含指定的字符串或符合相应的正则表达式的字符索引位置;match()方法同样也是用来间色字符串实例,但其返回的结果为由字符串和符合相应正则表达式组成的数组。

示例:1.搜索字符串中的索引号使用search()方法,可以检测匹配的字符串。

在之前的章节中,这一过程通常是由字符串实现的。

例如,在一句话中检索Script,如下所示。

var str:String="ActionScript和JavaScript都是ECMAScript的子集";trace(str.search("Script"));执行上面的语句,即可返回结果6,即在这个字符串中,第7个字符起出现了单词Script。

使用正则表达式可以实现更强大的功能,例如,实现对大小写的模糊处理,可以通过正则表达式的/i标志,如下所示。

var str:String="ActionScript和JavaScript都是ECMAScript的子集";trace(str.search(/script/i));执行上面的语句,同样可以返回结果6。

正则表达式还可以忽略匹配字符串中的空白字符,如下所示。

var str:String="ActionScript和JavaScript都是ECMAScript的子集";trace(str.search(/scr ipt/ix));执行上面的语句,即可发现获得了同样的效果。

需要注意的是,无论为正则表达式设置任何参数,search()方法都将只对字符串进行1次搜索。

Flash_ActionScript2.0教程(精编文档).doc

Flash_ActionScript2.0教程(精编文档).doc

【最新整理,下载后即可编辑】第一课认识编程环境ActionScript是针对Flash Player的编程语言,它在flash内容和应用程序中实现了交互性、数据管理以及其它许多功能.那么我们将程序写在什么地方呢?在flash创作环境中,我们的程序写在"动作"面板中而动作面板,又是与舞台上可以添加动作的对象相关联的.在ActionScript2.0中可以添加动作的对象有三种:关键帧、影片剪辑元件、按钮元件.编程实际就是向计算机下达指令,让计算机按我们的指令去完成一些任务.这就要求我们用计算机能看得懂的语言,这就是编程语言.ActionScript则是其中的一种.即然是语言,就同我们人类的语言一样它就有它自己的语法、语句、词汇等,这些东西就是我们要学习的内容.为了以后学习方便我们首先来学习一个语句:trace()这个语句的作用是,flash在运行时,将括号中的内容显示出来.上面我们提到,ActionScript2.0中可以添加动作的对象有三种:关键帧、影片剪辑元件、按钮元件.也就是说,我们可以在这三个对象的动作面板中编写程序.具体怎样作呢?我们来试试.新建一flash文档,如果你的flash 版本是CS3,那么请选择ActionScript2.0文档,因为本教程介绍的是ActionScript2.0.为什么不介绍3.0?因为sanbos发现很多人用的都是flash8.好,现在点击"插入"菜单,一"新建元件,建一个影片剪辑元件,随便画一个什么图形吧,将元件拖到舞台上;然后点击"窗口"一"公用库"一"按钮",然后随便选一个按钮拖到舞台上.这样,关健帧、影片剪辑、按钮都齐了.现在我们来看看怎样打开动作面板.在影片剪辑上点鼠标右键,然后在弹出菜单中点"动作",那么现在我们看到的就是动作面板了.图1:动作面板我们在按钮元件上执行相同的操作,可以得到相同的结果现在在时间轴的第1 帧上,执行相同的操作,一样地打开了动作面板.动作面板的右边留出了一大片空白,等着你去编写程序,鼠标指针在那儿闪着,便勾起了我们编程的冲动.于是你说:"我要编程了".上面我们不是介绍了一句,trace()吗?我们何不偷偷地在这里输上一句,也好过把编程的隐.于是你在这里输上:trace("我会编程了");注意大小写,括号后面跟着分号.测试影片.你会看到一个输出窗口,里面有"我会编程了"几个字是的,你已经会编程了.虽然只有一句,但它是一个ActionScript程序却是千真万确的.因此,这的确是一件值得祝贺的事情.来吧,让我们再说一次:"编程其实很容易".欣赏够以后,请关闭输出窗口,关闭播放窗口,回到几分钟之前,令我们自豪了一把的动作面板,我们来对它进行更进一步的认识.我们看到trace是蓝色的是的,ActionScript内部的词汇在编程环境中都会以蓝色表示.那么这就是一个技巧, 当你在输入程序时,如果输入ActionScript内部词汇时不是蓝色的,那么说明你输错了,那么你应该马上检查,是否有哪个字母输错了.现在问题出现了,你说我记不到那些词汇.在中学时英语考不出好成绩主要就是因为记不住单词.现在学习编程也记不住那些指令、语句,所以觉得编程好难.首先我还是说一句,你可能不太乐意听的话:多练自然就记住了.你说:我就是记不住,我是不是就不宜学习ActionScript编程呢?NO,你看说英语并不难,我张口就来.我们将标淮降低,只要你看到这些指令,能够认识它就行.相比之下,知道有些什么指令比记住那些指令的拼写要重要得多.回到动作面板,你就会明白这个道理.看看动作面板的左半部分,这里几乎将所有的指令列了出来,你可以分门别类地去找到相关指令,如影片剪辑控制、时间轴控制、常用语句等,找到相应语句,双击它,于是它便自动写到右边的编程窗口中了.是不是不用精确记住指令的拼写也能编程呢.在右边的编程窗口上面的工具栏最左边有一个加号,它具有与左边窗口相同的功能,不信你点它试试通常在ActionScript编程时,我们可能会习惯将代码写在影片剪辑、按钮元件上,这就必须要事件驱动,它的格式是:on(事件名称){要执行的语句}现在我们来试一试,在动作面板中输入on(这时你会发现弹出了一个窗口,将所有事件列了出来,你只需用鼠标选用所需要的事件双击它或回车,事件就会自动写到屏幕上.是不是很方便?很多ActionScript程序都是对影片剪辑、按钮元件、文本框等对象进行操作,这需要在属性面板中为它们命名.良好的命名习惯,对我们编写程序会有很大的帮助.按照约定,影片剪辑元件的命名以_mc结尾,如my_mc,按钮元件则是以_btn结尾,文本框则是以_txt结尾.当然你完全可以不理采这些约定,随心所欲地为他们命名.我们说遵守这些约定,会对我们编程有所帮助.还是来试一试吧.建一影片剪辑元件,然后将它拖到舞台上,打开属性面板,为它取名为:mymc_mc,在第一帧打开动作面板,输入:mymc_mc.这时会弹出一个窗口,需要哪个指令选就是了.这些指令是按拼音顺序排列的.如果你能记住所需指令的前几个字母,你不妨直接输入,这时你会发现,很快就定位到了你所需要的指令.现在,我们把元件的名称改为mymc,不以_mc结尾,再到动作面板中输入,mymc.结果什么也没有发生,后面的指令只有自己输了,或者到左边窗口中去选.按钮元件和文本框也是相同的.你可以试一下.这一课我们认识了动作窗口,这是我们ActionScript编程的地方,通过对智能化的编窗口的认识,应该消除了我们对编程的恐惧,让我们树立了学好ActionScript编程的信心第二课_面向对象编程基础ActionScript是一种面向对象的编程语言.通常我们会认为编程就是连续地写一系列指令,计算机按顺序地执行它.而面向对象编程则是将程序分成各个块,分散到对象上.什么是对象?对象就是我们在flash中能看到的一切东西.舞台是一个对象,时间轴、影片剪辑、按钮、文本、位图都是对象.在第一课中我们己说过:在ActionScript2.0中我们可以将程序写在关键帧、影片剪辑、按钮元件上.即便是将程序完全写在关键帧上,它也必须要对象的事件驱动才能执行.在理解了面向对象编程后,我们必需要对一些概念有所了解.事实上我们在上面对对象己经有了一定的了解.就如同我们的家中,所有的东西都可以叫做对象.比如,电视机,电冰箱,书桌,衣柜等等.很容易发现,这些东西,总有那么几个都有相似之处.比如,电视机、电冰箱都需要用电;书桌、衣柜都是用木头做成的. 我们便把家里的东西分成了几类,并为每一类东西取上一个名字,比如,电器类、木器类等.这样我们就理解了另一个重要的概念一"类".类是某一类型对象的概括或者说是模板,在ActionScript中,所有对象都是由类定义的.每个类都包括了三个重要的元素:事件、属性、方法,这是我们必须要了解的三个重要概念.事件:在面向对象的编程中,并不是将程序按顺序交给计算机去执行,上面己经谈到了,程序被分散到了对象上.那么要计算机执行这些程序就需要事件来触发.通俗地讲就是:当某件事情发生时就去做一些事情.这个某件发生的事情就是事件.在flash中,常常会放上一个按钮,比如"开始"按钮.程序设计者可能是这样的思路:当按钮按下时就播放动画.那么"当按钮按下时"就是按钮对象的事件.在ActionScript2.O中,程序可以写在关键帧和元件上,事件在关健帧中和原件中的输写方法是不一样的. 事件在关健帧中的写法:元件名称.事件名称= function(){要执行的语句....}事件在元件上的写法:on(事件名称){要执行的语句.....}我们来做一个练习,在舞台上有一名为play_btn的按钮,现在要实现点击按钮动画就播放.新建flash文档,用椭园工具画一个园,然后,在40帧插入关健帧,将园移到另一位置,建立补间动画.新建一图层,从内部库中拖一个按钮到舞台上.打开属性面板,为按钮命名为play_btn.这里先介绍一个最常用的事件:release,这是当放开鼠标按键时触发.实际也就是完成了一个点击动作时发生.首先,在幀动作面板上写程序的方式完成练习:新建图层,命名为action,当这不是必须的,你完全可以给它取个其它名字.打开幀动作面板,输入:stop(); //这是让动画停止播放,以便让我们点击按钮时才播放.play_btn.onRelease = function(){play(); //让动画开始播放}测试影片,当点击按钮后,园形开始移动.回到场景中,可以看到,在action图层时间轴的第1幀上,有一个a字,这说明在这一幀上有程序.下面用在元件上写程序的方式来完成练习:将幀动作除第一行的stop();外其它的程序全部删除.然后,在按钮元件上点右键,点击"动作",打开动作面板,输入如下代码:On(replease){Play();}测试影片,得到相同的效果.属性:对象的属性可以理解为对象的特性,比如,大小,位置,颜色等.属性的输写规则是:对象名称.属性名称=值;下面介绍几个最常用的属性:_x,_y:分别是对象在舞上台的x,y坐标,这两个属性可以确定对象在舞台上的位置._xscale,_yscale:分别是对象在舞台上沿x,y轴方向的缩放比例,实际上就是宽和高的缩放比例,以百分比表示,例如:my_mc._xscale = 50; //这表示,元件my_mc的宽度缩小到原来的50%._alpha:这是对象的透明度,取值为0-100._rotation:这是对象的旋转度,以角度为单位._visible:为是对象是否可见,可设置两个值,true(或1)和false(或0).比如要设置元件my_mc在舞台上不可见,可用:my_mc._visible = false; 或my_mc._visible = 0;相反要设置它在舞台上可见则用:my_mc._visible = true; 或my_mc._visible = 1;函数:你可能要问,属性介绍完了该介绍方法了,你怎么介绍起函数来了?原因很简单,方法也是函数.将函数附加到对象时,它就被称为方法.什么是函数呢?将完成一个任务的若干语句封装起来,就叫函数.也许用例子来说明会好理解一些.比如,要完成一个开电视的任务,可能需要很多步骤,插上电源,开机,选频道,设置音量.我们将这些步骤封装起来,并给它取个名字"开电视"这就创建了一个开电视的函数.在ActionScript2.O中创建函数的格式是:function 函数名称(){要执行的语句;.....}比如要创建上面开电视函数,就这样写:function 开电视(){插电源;开机;选频道;设音量;}函数创建以后,要调用这个函数只需:函数名()即可,比如我们要执行开电视的任务,只需输入:开电视();练习一下,我们来创建一个函数,然后调用它.打开第一帧的动作面板,输入:function test(){trace("我会写函数了");}test();测试影片,在输出面板中,会出现"我会写函数了"几个字.这个练习我们首先创建了一个叫test的函数,然后用test();调用了它.有时会有这样的情况,在函数内的语句中要用到数据,在创建函数的时候,却不能确定这些数据,比如每次调用会用不同的数据.这时就会用到参数,调用时,通过参数将数据传递给函数.格式如下:创建函数的格式:function 函数名称(参数1,参数2,…){要执行的语句}调用函数的格式:函数名称(值1,值2,…);还是以开电视为例:创建开电视函数:function 开电视(频道,音量){插电源;开机;选频道=频道;设音量=音量;}调用函数:开电视(12,28);调用后,电视打开,并将频道设为12,音量设为28.练习:在帧动作面板中输入:functiontest(a,b){c=a+b;trace(c);}test(3,5);测试影片,输出面板中应显示8 .了解了函数后,再来说方法就简单多了.上面已经说过,将函数附加到对象,就称为方法.AS中内置了很多方法,对于这些方法,我们不需要去了解它执行了些什么语句,只需要知道它可以完成的任务就行了.我们可以用:对象名称.方法名称();的格式来调用这些方法.比如有一个my_mc的影片剪辑元件,我们可以调用它的一些方法:my_mc.stop();my_mc.startDrag();按钮:在交互式的动画制作中, 经常会用到按钮,比如我们会放上一个"播放"、"停止"、"重放"等按钮.有两种方式可以将按钮添加到舞台上,一种是从内部库中拖一个按钮到舞台上;另一种方法是自己创建一个按钮,这里主要介绍一下自己创建按钮的方法,因为常常有人会问:为什么我创建的按钮点击它时不起作用?这可能就是创建按钮时出了问题.现在点击"插入"菜单-"创建新元件",选择按钮,这时就进入按钮编辑窗口,可以看到,时间轴上只有4帧,分别是:弹起,指针经过,按下,点击.特别要注意的是,点击那一帧,这一帧是点击的范围,因此这一帧是必须的,而且要注意的是,如果你的按钮是纯文字的,如Play,那么在这一幀应该画一个矩型,作为点击范围,不然,用户就只有点击到文字的笔划上才能触发按钮事件.在按钮编辑窗口中同样可以有很多层,比如第一层为图形,第二层为文字等.下面来制作一个按钮:点击“插入”-“新建元件”,选择按钮,确定,这样就进入元件编辑窗口。

ActionScript编程 创建字符串

ActionScript编程  创建字符串

ActionScript编程创建字符串作用:创建一个新的字符串。

说明:在ActionScript 3.0中,String类提供了处理字符串值类型的方法和属性。

创建字符串最简单的方式是使用字符串文本。

在创建字符串文本时,必须使用双引号(")或单引号(')字符,如下所示。

var str1:String = "字符串";var str2:String = '字符串';除此之外,还可以使用new运算符来声明字符串,如下所示。

var str1:String = new String("字符串");var str2:String = new String(str1);var str3:String = new String(); //空字符串字符串值一定要用引号包围起来,可以是单引号或双引号。

但是,用于包围字符串的起始引号和结尾引号一定要是相同的类型。

String()如果将字符串变量设置为undefined时,Flash会将undefined强制转换为null。

如果需要使用undefined,则可以通过String()函数,如下所示。

var str1:String = undefined;trace(str1); //输出nullvar str2:String = String(undefined);trace(str2); //输出undefined示例:如果想要在ActionScript中处理一段文本时,必定会使用到字符串值。

例如,将描述四季的语句存储到字符串中,并通过trace()函数输出这些内容,如下所示。

var spring:String = "春天:春暖花开春寒料峭";var summer:String = "夏天:烈日炎炎暴风骤雨";var autumn:String = "秋天:一叶知秋秋风瑟瑟";var winter:String = "冬天:寒风凛冽千里冰封";trace(spring);trace(summer);trace(autumn);trace(winter);/*输出:春天:春暖花开春寒料峭夏天:烈日炎炎暴风骤雨秋天:一叶知秋秋风瑟瑟冬天:寒风凛冽千里冰封*/。

ActionScript编程 搜索子字符串的位置

ActionScript编程  搜索子字符串的位置

ActionScript编程搜索子字符串的位置作用:在字符串内搜索子字符串,并返回其索引位置。

说明:使用String类的indexOf()或lastIndexOf()方法,可以判断字符串中是否包含有指定的子符串值。

这两个方法都会返回找到的子字符串的起始索引。

indexOf()方法是从左向右搜索字符串,并返回在调用字符串内指定位置上或之后找到的第一个匹配项的起始索引位置。

如果未找到匹配项,则返回-1。

indexOf()方法的一般形式如下所示。

String.indexOf(substring,startIndex);indexOf()方法包含有以上两个参数,其详细介绍如下所示。

●substring 要搜索的子字符串。

●startIndex 指定开始搜索子字符串的起始索引位置(从零开始),可选参数。

字符串中的第一个字符的索引位置是0,而不是1。

如果省略此参数,indexOf()方法会从字符串开头开始搜索(即从索引0处)。

lastIndexOf()方法的运行方式与indexOf()方法类似,只不过是在字符串中从右向左搜索,实质上就是从后面往回搜索字符串,并返回子字符串最后出现的起始索引位置。

即使是从后面往回搜索字符串,返回的起始索引仍然是找到的子字符串的开头位置。

如果未找到匹配项,则返回-1。

lastIndexOf()方法的一般形式如下所示。

stIndexOf(substring,startIndex);与indexOf()方法相同,lastIndexOf()方法也包含有两个参数,其详细介绍如下所示。

●substring 要搜索的子字符串。

●startIndex 指定搜索子字符串的起始索引位置,默认为允许最大的索引值。

如果省略该参数,lastIndexOf()方法会从字符串的末尾开始搜索(即从索引string.length - 1处)。

substring示例:如果想要测试一个字符串是否包含有另一个字符串,可以使用带有一个参数的indexOf()方法。

ActionScript编程 正则表达式的语法

ActionScript编程  正则表达式的语法

ActionScript编程正则表达式的语法
说明:
正则表达式可以由字符、元字符和标志组成。

并通过以上这些元素,组成特定的表达式以指定匹配规则。

1.普通字符
在正则表达式中,字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是普通字符。

表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。

字符可以组成最简单的正则表达式,用于匹配与其相同的字符串。

2.元字符
元字符是在正则表达式中含有特殊意义的字符,其与普通字符相对应。

元字符通常由标点符号开始由一个或多个标点符号与字符组成。

在ActionScript3.0中,支持多种元字符,如表11-2所示。

表11-2 正则表达式中的元字符
3.标志
在之前的小节中已介绍了正则表达式实例可使用的各种属性。

标志的作用和属性类似。

用户可以声明一个正则表达式的实例,再将属性赋给正则表达式;也可以通过为正则表达式添加标志,定义正则表达式的各种属性。

(关于标志请参考本章开头部分-正则表达式的属性表)。

ActionScript编程 替换字符

ActionScript编程  替换字符

ActionScript编程替换字符作用:将字符串中的一个子字符串替换为另一个子字符串。

说明:ActionScript 3.0中包含一个新的方法String.replace(),它可以在字符串中搜索指定的子字符串或正则表达式,并使用指定的替换字符串替换匹配项。

replace()方法的一般形式如下所示。

String.replace(pattern,repl);replace()方法可以接受以上两个参数,其详细介绍如下所示。

●pattern 要查找和替换的模式,可以为任何类型的对象,但通常是字符串或正则表达式。

如果指定的pattern参数是除字符串或正则表达式以外的任何其它对象,将对该参数应用toString()方法,并使用结果字符串作为pattern来执行replace()方法。

●repl 通常是以插入的字符串替换匹配内容。

但也可以指定一个函数作为此参数。

如果指定一个函数,将插入由该函数返回的字符串来替换匹配内容。

如果指定一个正则表达式作为pattern参数,并指定一个字符串作为repl参数,则可以在repl字符串中使用特殊的$替换代码,如表11-1所示。

表11-1 $代码及替换文本如下参数:●字符串的匹配部分。

●任何捕获到的括号组匹配项都将作为下一组参数提供。

按这种方式传递的参数数目因括号匹配项的数目而异。

可以通过检查函数代码中的arguments.length - 3来确定括号匹配项的数目。

●字符串中匹配开始的索引位置。

●完整的字符串。

示例:将str中的子字符串替换为另一个子字符串。

在repace()方法返回的新字符串中,已经将匹配项替换为新子字符串,然而,原有字符串并未受到影响,如下所示。

var str:String = "This is a cool day today.";var str2:String = str.replace(" is "," is not ");trace(str);trace(str2);/*输出:This is a cool day today.This is not a cool day today. */在上面的示例中,“is”这个单词作为匹配项时,两端有空格。

ActionScript编程 匹配字符

ActionScript编程匹配字符作用:通过正则表达式的转义和编码等方式,判断单个字符是否符合正则表达式的要求。

说明:在创建正则表达式时,有些字符不能直接使用。

例如元字符中的各种符号等,这时就需要通过转义或编码等方式间接地表示字符。

了解转义和编码后,即可根据条件判断字符的类型。

1.转义在字符串的相关章节中,已介绍过由于一些符号属于ActionScript 的关键字或运算符,因此不能在字符串中使用,必须通过转义符来表示。

在正则表达式中,同样有些字符是不允许使用的。

要使用这些符号,就必须对其进行转义处理。

正则表达式中的转义和字符串中的转义符类似,都需要在符号前加斜杠“\”,正则表达式中的转义符号如表11-3所示。

符符号,都需要先使用斜杠“\”进行转义处理。

例如,加号“+”应写为“\+”,尖号“^”应写为“\^”等。

2.编码在正则表达式中,除了使用转义符表示各种特殊字符以及元字符的符号外,还可以使用ASCII码或unicode码表示各种字符。

在字符串中,使用ASCII码或unicode码必须在编码数字前加斜杠,以示区分。

而在正则表达式中,则通常需要对ASCII码和unicode码区分处理。

在使用ASCII码时,需要先获取字符的两位16进制数字代码,然后在之前添加斜杠和x“\x”,例如,字母A的ASCII码位65,因此,在正则表达式中可以用“\x65”表示。

在使用unicode码时,则需要先获取字符的4位16进制数字代码,然后在之前添加斜杠和u“\u”,例如,尖号“^”的unicode码位005e,因此,在正则表达式中可以用“\u005e”表示。

示例:在编写各种应用程序时,经常需要对字符进行匹配处理,检测字符属于字母、数字、特殊符号,还是属于其他语言(例如,中文等)的文字。

例如,匹配字符是否属于字母ABC,可以编写正则表达式Regulara,如下所示。

var Regulara:RegExp=/^[ABC]/;trace(Regulara.test("A"));执行上面的代码,即可对字符A进行匹配操作,得到结果true。

第17章 正则表达式

第17章正则表达式在ActionScript 3.0中引入了强大的字符串处理工具――正则表达式。

正则表达式主要用于验证文本字段的值是否符合特定模式,比如验证用户输入的电话号码位数是否正确;或者替换与特定模式匹配的部分文本值。

本章将介绍正则表达式是什么,怎么使用,并介绍一些常见的正则表达式的写法。

1.正则表达式概述正则表达式常常被错误的认为是只有少数人理解的一种神秘语言。

的确,表面上正则表达式看起来杂乱无章,如果不了解相关的语法知识,那么代码在就像一堆杂乱无章的字符堆积而已。

事实上,正则表达式是非常简单并且可以被理解的。

通过本节的学习,你将了解正则表达式的基本概念和基本构成,对正则表达式有一个基本的认识。

1)什么是正则表达式正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上,于1956提出来的。

具有完整语法的正则表达式,主要使用在字符串的格式的匹配方面上,后来也逐渐应用到信息技术领域。

不同的编程语言对于正则表达式有细微的不同,ActionScript 3.0是按照ECMAScript第3版语言规范(ECMA-262)中的定义实现正则表达式。

熟悉windows操作系统读者,应该知道windows中是怎样查找文件的。

不错,使用通配符“*”用来匹配任意字符,“?”用来匹配一个字符,来实现搜索功能的。

比如使用text?.txt 来搜索的话,可以找到:2)一个简单的正则表达式实例看一段正则表达式的代码可能觉得很复杂,实际上如果明白其规律,则就很容易理解了。

下面先来看一段简单的字符串查找替换的正则表达式示例,实现从一段文字中查找文字“正则表达式”,并把它替换成“regEXP”,代码如下所示:var str:String= "字符串查找替换的正则表达式示例,实现从一段文字中查找文字正则表达式,并把它替换成regEXP";var pattern:RegExp = /正则表达式/;var repstr="regEXP"trace(str.replace(pattern,repstr));// 输出:字符串查找替换的regEXP示例,实现从一段文字中查找文字正则表达式,并把它替换成regEXP3)正则表达式的构成正则表达式一般由两个部分组成。

ActionScript编程 正则表达式概述

ActionScript编程正则表达式概述说明:正则表达式就是用一种特殊的字符串表达式,其可以描述一些特征,然后用这种字符串去验证另一些字符串是否符合这个特征,或者替换与特征匹配的部分字符。

在ActionScript 3.0中,正则表达式通常以斜杠“/”开始和结尾。

正则表达式属于全局类RegExp的实例,因此不需要在类中链接RegExp类。

1.创建正则表达式的实例在创建正则表达式时,需要声明RegExp实例,通过构造函数为其赋值,如下所示。

var RegExpName:RegExp=new RegExp("RegExpValue");在上面的代码中,各关键字的含义如下所示。

●RegExpName 正则表达式实例的名称●RegExp 正则表达式实例的数据类型●RegExp() 正则表达式的构造函数●RegExpValue 正则表达式的值除了通过以上方式外,还可以直接声明正则表达式,然后为其赋值,如下所示var RegExpName:RegExp=RegExpValue;2.正则表达式的属性在ActionScript中,RegExp类包含多种属性供用户选择。

通过这些属性,用户可以创建自定义的正则表达式实例,如表11-1所示。

表11-1 正则表达式的属性多数正则表达式的属性都可以通过表达式标志,直接书写在表达式的尾部。

3.正则表达式的方法正则表达式实例可使用的方法主要包括两种,即exec()方法和test()方法。

exec()方法的作用是在给定的字符串中执行正则表达式搜索。

当正则表达式实例非全局匹配型时,从字符串的开头搜索,否则则从正则表达式实例指定的索引位置开始搜索。

exec()方法返回的值可以分为2种。

当字符串与正则表达式不匹配时,返回值为null;否则,返回一个对象,该对象包含一个数组、一个非负整数以及一个字符串,如下所示。

●数组元素0包含完全匹配的字符串,其他元素则为与正则表达式中的括号组相匹配的字符串●非负整数匹配的字符串在整个字符串中的位置●字符串被匹配的整个字符串test()方法的作用是对给定的字符串进行匹配测试操作。

Action_Script_2.0基本代码解析

基本Action。

包括:- Go to跳转到指定的帧- Play播放- Stop停止- Toggle High Quality在高画质和低画质间切换- Stop All Sounds停止所有声音的播放- Get URL跳转至某个超联结- FSCommand发送FSCommand命令- Load Movie装载影片- Unload Movie卸载影片- Tell Target告知目标- If Frame Is Loaded..判断帧是否被完全载入- On Mouse Event鼠标事件。

其他Actions。

包括:- break跳出循环- call调用指定帧(一般喊有某个特定函数)- comment注释- continue继续循环- delete删除一个对象(Object)中的变量- do while do while循环- duplicateMovieClip复制MC- else否则(与if联用)- else if否则如果(与if联用)- evaluate调用自定义函数(Function)- for for循环- for .. in依次取得对象(Object)中的各个属性或者某个数组中的所有元素- FSCommand发送FSCommand命令- function声明自定义函数- getURL跳转至某个超联结- goto跳转到指定的帧- if如果- ifFrameLoaded..帧是否完全被载入- include读入外部的ActionScript程序文件(.as)- loadMovie装载MC- loadVariables转载外部文件中的数据,这些外部文件可以是文本文件,或者是由ASP/CGI等脚本返回的文本值- on鼠标事件的触发条件- onClipEvent MC的事件触发程序- play播放- print输出到打印机- removeMovieClip删除MC- return在函数(function)中返回一个值- set variable设定变量值- setProperty设定属性- startDrag开始拖动- stop停止- stopAllSounds停止所有声音的播放- stopDrag停止拖动- swapDepths交换两个MC的深度- tellTarget指定Action命令生效的目标- toggleHighQuality在高画质和低画质间切换- trace跟踪调试- unloadMovie卸载MC- var声明局部变量- while当..成立时..- with对..对象(Object)做..。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ActionScript编程匹配多个字符或字符串
作用:
通过元字符、转义符以及ASCII码等正则表达式的组成部分,判断多个字符或字符串是否符合正则表达式的要求。

说明:
正则表达式可以通过点“.”、星号“*”、加号“+”、问号“?”等元字符匹配若干数量的字符或字符串。

这些元字符又被称作数量元字符。

除这些元字符外,还可以通过大括号“{}”加数字的方式定义指定数量字符和字符串的匹配。

示例:
1.点“.”元字符
使用点“.”可以匹配任意单个字符或字符串。

例如,单词big和bug都是由字母b和g以及之间的元音字母组成,这两个单词可以通过点“.”来匹配,如下所示。

var Regular1:RegExp=/b.g/;
trace(Regular1.test("big"));
trace(Regular1.test("bug"));
执行上面的代码,即可输出匹配的结果均为true。

2.星号“*”元字符
使用星号“*”可以匹配0到任意多个字符或字符串。

例如,数字1234567890和数字10,可以通过数字1和0以及星号“*”实现匹配,如下所示。

var Regular2:RegExp=/1*0/;
trace(Regular2.test("1234567890"));
trace(Regular2.test("10"));
执行上面的代码,即可完成匹配实验,输出结果均为true; 3.加号“+”元字符
使用加号“+”元字符可以匹配一个或更多的字符或字符串。

例如,单词happen和happy都是由4个字母happ开头,即可以happ和加号
“+”实现匹配,如下所示。

var Regular3:RegExp=/(happ)+/;
trace(Regular3.test("happen"));
trace(Regular3.test("happy"));
需要注意的是加号“+”和星号“*”元字符之间是有区别的。

星号“*”元字符可以匹配0个字符,而加号“+”元字符则必须匹配一个以上的字符。

通过下面的两个正则表达式可以看出两种元字符之间的区别。

var Regular4:RegExp=/directX+/;
var Regular5:RegExp=/directX*/;
trace(Regular4.test("direct"));
trace(Regular5.test("direct"));
执行上面的代码,即可输出两个正则表达式的匹配结果,其中,Regular4匹配的结果为false,Regular5匹配的结果为true。

以上代码证明,加号“+”元字符是无法匹配0个字符的。

4.问号“?”元字符
问号“?”元字符可以匹配0个或1个字符或字符串。

例如,该元字符可以匹配单词access中的字母a和e,单不能匹配字母c和s,只能匹配字符串cc和ss,如下所示。

var Regular6:RegExp=/ac?es?/;
var Regular7:RegExp=/a(cc)?e(ss)?/;
trace(Regular6.test("access"));
trace(Regular7.test("access"));
执行上面的代码,即可返回两个正则表达式的匹配结果。

由于问号“?”无法匹配两个或以上的字符或字符串,因此,Regular6正则表达式无法与access匹配。

5.大括号“{}”元字符
使用大括号“{}”也可以匹配指定数量的字符或字符串。

大括号“{}”元字符有3种使用方法,如下所示。

表示重复次数
在大括号“{}”中填入一个正整数后,正整数将表示大括号之前的字符或字符串的重复次数。

例如,匹配IEEE1394中出现了3次的字
母E,如下所示。

var Regular8:RegExp=/IE{3}1394/;
trace(Regular8.test(IEEE1394));
●表示重复的下限值
在大括号“{}”中填入一个正整数和一个逗号“,”后,可以匹配最小重复次数。

例如,匹配数字10000,则以下4个正则表达式均可匹配成功。

var Regulara:RegExp=/10{1,}/
var Regulara:RegExp=/10{2,}/
var Regulara:RegExp=/10{3,}/
var Regulara:RegExp=/10{4,}/
●表示重复的范围
用户还可以在大括号“{}”中填入两个正整数,其中第1个正整数较小,而第2个正整数较大,并在中间以逗号“,”隔开。

这样表示重复的范围值。

其中,较小的正整数表示最小重复次数,而较大的正整数则表示最大重复次数。

例如,匹配数字10000的正则表达式还可以写为如下的格式。

var Regular9:RegExp=/10{1,4}/。

相关文档
最新文档