ActionScript编程 搜索匹配的字符串
ActionScript编程 匹配数字

ActionScript编程匹配数字作用:通过正则表达式判断各种Flash程序中常见的数字型数据是否符合要求。
说明:在处理大量数据时,经常需要匹配各种特定类型的数字。
例如,某个数字范围或某个数字类型,包括整数、浮点数等等。
另外,使用问号“?”还可以匹配正数或负数。
示例:1.匹配正整数正整数是不包含负号和浮点部分的数字,其首个数字非0。
匹配正整数的正则表达式如下所示。
/^[1-9]\d*$/2.匹配负整数负整数与正整数最大的区别在于负整数之前会包含一个负号。
因此,匹配负整数的正则表达式如下所示。
/^-[1-9]\d*$/3.匹配整数整数可以分为3类,即正整数、负整数和0。
在匹配整数时,可以将正整数、负整数和0分别作为正则表达式的条件,如下所示。
/^([1-9]\d*)|(-[1-9]\d*)|0$/除了上面的方法外,用户还可以使用问号“?”元字符匹配负号,将正整数和负整数的正则表达式组合起来,如下所示。
/^(-?[1-9]\d*)|0$/同理,用户也可以用以上的方法匹配非负整数和非正整数,如下所示。
/^[1-9]\d*|0$//^-[1-9]\d*|0$/4.匹配浮点数浮点数是包括小数部分的数字,在匹配浮点数时需要注意,浮点数的整数部分与整数是不同的。
当浮点数字的整数部分位数超过1位时,其首位数字不可以是0。
而当浮点数字的整数部分位数只有1位时,这1位是允许为0的。
因此,匹配浮点数应从2方面着手。
例如,匹配正浮点数的正则表达式,如下所示。
/^(([1-9]\d*)|0)\.\d*$/用同样的方式,用户也可编写匹配负浮点数的正则表达式,如下所示。
/^-(([1-9]\d*)|0)\.\d*$/同理,使用问号“?”还可以匹配所有浮点数,如下所示。
/^-?(([1-9]\d*)|0)\.\d*$/5.匹配二进制数字二进制数字是由0或1组成的数字。
因此,在匹配二进制数字时,应限定数字中只出现0和1。
同时,二进制数字通常以4位一组的形式书写,以空格分隔,且首位允许为0。
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编程正则表达式的语法
说明:
正则表达式可以由字符、元字符和标志组成。
并通过以上这些元素,组成特定的表达式以指定匹配规则。
1.普通字符
在正则表达式中,字母、数字、汉字、下划线、以及没有特殊定义的标点符号,都是普通字符。
表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。
字符可以组成最简单的正则表达式,用于匹配与其相同的字符串。
2.元字符
元字符是在正则表达式中含有特殊意义的字符,其与普通字符相对应。
元字符通常由标点符号开始由一个或多个标点符号与字符组成。
在ActionScript3.0中,支持多种元字符,如表11-2所示。
表11-2 正则表达式中的元字符
3.标志
在之前的小节中已介绍了正则表达式实例可使用的各种属性。
标志的作用和属性类似。
用户可以声明一个正则表达式的实例,再将属性赋给正则表达式;也可以通过为正则表达式添加标志,定义正则表达式的各种属性。
(关于标志请参考本章开头部分-正则表达式的属性表)。
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”这个单词作为匹配项时,两端有空格。
js查找字符串中匹配数据的方法

js查找字符串中匹配数据的方法使用JavaScript编程语言查找字符串中匹配数据的方法在使用JavaScript编程语言时,经常会遇到需要从给定的字符串中查找特定的数据或模式的情况。
这时候,我们可以使用一些内置的JavaScript方法来帮助我们实现这一目标。
本文将介绍一些常用的方法来查找字符串中匹配的数据。
1. indexOf()方法indexOf()方法用于查找字符串中第一个匹配的子字符串,并返回其位置。
如果没有找到匹配的子字符串,则返回-1。
该方法不区分大小写。
语法:str.indexOf(searchValue[, fromIndex])示例:```javascriptlet str = "Hello, world!";let position = str.indexOf("o");console.log(position); // 输出4```上述代码中,我们调用了indexOf()方法,传入参数"o",它会返回字符串中第一个字符"o"的位置,即4。
2. lastIndexOf()方法lastIndexOf()方法与indexOf()方法类似,不同之处在于它从字符串的末尾开始查找匹配的子字符串,并返回其位置。
如果没有找到匹配的子字符串,则返回-1。
语法:stIndexOf(searchValue[, fromIndex])示例:```javascriptlet str = "Hello, world!";let position = stIndexOf("o");console.log(position); // 输出7```上述代码中,我们调用了lastIndexOf()方法,传入参数"o",它会返回字符串中最后一个字符"o"的位置,即7。
汇编语言查找匹配字符串

汇编语言实验二查找匹配字符串一、目的查找匹配字符串SEARCH二、实验内容程序接收用户键入的一个关键字以及一个句子。
如果句子中不包含关键字则显示‘NO match!’;如果句子中包含关键字则显示‘MATCH’,且把该字在句子中的位置用十六进制数显示出来。
流程图三、设计和编码DATA SEGMENTmess1 DB 'Enter keyword:','$'mess2 DB 'Enter Sentence:','$'mess3 DB 'Match at location:','$'mess4 DB 'NOT MATCH.',13,10,'$'mess5 DB 'H if the sentence',13,10,'$' N YY Y输入关键字结束关键字长度=0输入句子句子长度<关键字长度Y保存关键字长度到cx ,cx 入栈,保存总循环次数(句子长度-关键字长度+1)到al ,将句子的首地址放进bx(作为基址寄存器) si=di=0(变址寄存器)开始比较[bx+di]与[si]是否相等si+1,di+1,cx-1(同时指向下一个字符)YN bx+1(句子指向下一个字符) cx 出栈,再入栈,si,di 清零,al-1 cx 是否为0N 匹配完成,调用子程序输出al 是否为0 不匹配,输出change DB 13,10,'$'stoknin1 label bytemax1 db 10act1 db?stokn1 db 10 dup(?)stoknin2 label bytemax2 db 50act2 db?stokn2 db 50 dup(?)DATA ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODE SEGMENT;*************************************代码段main proc farassume cs:code,ds:data,es:dataSTART:push dssub AX,AXsub BX,BXsub DI,DIsub SI,SIpush AX ;为返回dos并清空后面要用到的寄存器MOV AX,DATAMOV DS,AXLEA DX,mess1MOV ah,09INT 21h ;输出Enter keywordLEA DX,stoknin1MOV ah,0ah ;用21号中段的0ah号功能获取关键字INT 21hcmp act1,0je exit ;如果为空直接退出程序a10:;********************************输入Sentence并判断LEA DX,changeMOV ah,09INT 21h ;输出回程,换行LEA DX,mess2MOV ah,09INT 21h ;输出Enter Sentence:LEA DX,stoknin2MOV ah,0ahINT 21h ;用21号中段的0ah号功能获取句子MOV AL,act1CBWMOV CX,AX ;保存关键字长度到cxPUSH CX ;cx入栈MOV AL,act2cmp AL,0je a50 ;保存句子长度到al,若句子为空则跳转显示not match SUB AL,act1js a50 ;若句子长度小于关键字长度,则跳转显示not match INC ALCBWLEA BX,stokn2 ;将句子的首地址放进BXMOV DI,0MOV SI,0a20:;****************************************比较,内循环MOV AH,[BX+DI]CMP AH,stokn1[SI] ;遇见字符不相等就跳转到a30jne a30INC DIINC SIDEC CX ;没遇到一个相等的字符,cx-1,cx不为0则比较下一个字符,当cx为0是说明关键字比较完CMP CX,0je a40jmp a20a30:;*****************************************外循环,BX+1,清空si,di继续内循环比较INC BXDEC ALcmp AL,0je a50MOV DI,0MOV SI,0POP CXpush CXjmp a20a40:;*****************************************match,将bx减去句子的首地址加一得到关键字所在位置,调用二进制转十六进制子函数将位置输出SUB BX,offset stokn2INC BXLEA DX,changeMOV ah,09INT 21hLEA DX,mess3MOV ah,09INT 21hCALL btohLEA DX,mess5MOV ah,09INT 21hjmp a10;****************************************二进制转换十六进制btoh PROC NEARMOV CH,4rotate: MOV CL,4ROL BX,CLMOV AL,BLand AL,0fhadd AL,30hcmp al,3ahjl printitadd al,7hprintit:MOV dl,alMOV ah,2int 21hdec chjnz rotateretbtoh endpa50:;*****************************************显示not matchLEA DX,changeMOV ah,09INT 21hLEA DX,mess4MOV ah,09INT 21hjmp a10exit:retmain endpCODE ENDSEND START 四、运行结果及分析五、实验小结六、附录(选)。
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。
汇编语言实验二查找匹配字符串

汇编语言实验二查找匹配字符串一、目的查找匹配字符串SEARCH二、实验内容程序接收用户键入的一个关键字以及一个句子。
如果句子中不包含关键字则显示‘NO match!’;如果句子中包含关键字则显示‘MATCH’,且把该字在句子中的位置用十六进制数显示出来。
流程图N YY Y输入关键字结束关键字长度=0输入句子句子长度<关键字长度Y保存关键字长度到cx ,cx 入栈,保存总循环次数(句子长度-关键字长度+1)到al ,将句子的首地址放进bx(作为基址寄存器) si=di=0(变址寄存器)开始比较[bx+di]与[si]是否相等si+1,di+1,cx-1(同时指向下一个字符)YN bx+1(句子指向下一个字符) cx 出栈,再入栈,si,di 清零,al-1 cx 是否为0N 匹配完成,调用子程序输出al 是否为0 不匹配,输出三、设计和编码DATA SEGMENTmess1 DB'Enter keyword:','$'mess2 DB'Enter Sentence:','$'mess3 DB'Match at location:','$' mess4 DB'NOT MATCH.',13,10,'$' mess5 DB'H if the sentence',13,10,'$'change DB 13,10,'$'stoknin1 label bytemax1 db 10act1 db?stokn1 db 10 dup(?)stoknin2 label bytemax2 db 50act2 db?stokn2 db 50 dup(?)DATA ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODE SEGMENT;*************************************代码段main proc farassume cs:code,ds:data,es:dataSTART:push dssub AX,AXsub BX,BXsub DI,DIsub SI,SIpush AX ;为返回dos并清空后面要用到的寄存器MOV AX,DATAMOV DS,AXLEA DX,mess1MOV ah,09INT 21h ;输出Enter keywordLEA DX,stoknin1MOV ah,0ah ;用21号中段的0ah号功能获取关键字INT 21hcmp act1,0je exit ;如果为空直接退出程序a10:;********************************输入Sentence并判断LEA DX,changeMOV ah,09INT 21h ;输出回程,换行LEA DX,mess2MOV ah,09INT 21h ;输出Enter Sentence:LEA DX,stoknin2MOV ah,0ahINT 21h ;用21号中段的0ah号功能获取句子MOV AL,act1CBWMOV CX,AX ;保存关键字长度到cxPUSH CX ;cx入栈MOV AL,act2cmp AL,0je a50 ;保存句子长度到al,若句子为空则跳转显示not match SUB AL,act1js a50 ;若句子长度小于关键字长度,则跳转显示not match INC ALCBWLEA BX,stokn2 ;将句子的首地址放进BXMOV DI,0MOV SI,0a20:;****************************************比较,内循环MOV AH,[BX+DI]CMP AH,stokn1[SI] ;遇见字符不相等就跳转到a30jne a30INC DIINC SIDEC CX ;没遇到一个相等的字符,cx-1,cx不为0则比较下一个字符,当cx为0是说明关键字比较完CMP CX,0je a40jmp a20a30:;*****************************************外循环,BX+1,清空si,di继续内循环比较INC BXDEC ALcmp AL,0je a50MOV DI,0MOV SI,0POP CXpush CXjmp a20a40:;*****************************************match,将bx减去句子的首地址加一得到关键字所在位置,调用二进制转十六进制子函数将位置输出SUB BX,offset stokn2INC BXLEA DX,changeMOV ah,09INT 21hLEA DX,mess3MOV ah,09INT 21hCALL btohLEA DX,mess5MOV ah,09INT 21hjmp a10;****************************************二进制转换十六进制btoh PROC NEARMOV CH,4rotate: MOV CL,4ROL BX,CLMOV AL,BLand AL,0fhadd AL,30hcmp al,3ahjl printitadd al,7hprintit:MOV dl,alMOV ah,2int 21hdec chjnz rotateretbtoh endpa50:;*****************************************显示not matchLEA DX,changeMOV ah,09INT 21hLEA DX,mess4MOV ah,09INT 21hjmp a10exit:retmain endpCODE ENDSEND START 四、运行结果及分析五、实验小结六、附录(选)。
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()方法的作用是对给定的字符串进行匹配测试操作。
ActionScript编程 提取子字符串

ActionScript编程提取子字符串作用:从字符串中提取指定范围的子字符串。
说明:String类的substring()、substr()和slice()方法都会返回子字符串值,而不会影响原有字符串。
这3个方法的唯一区别在于其所接受的参数不同。
substring()方法返回一个子字符串,其中包含从指定的起始索引一直到结束索引的所有字符,该方法的一般形式如下所示。
String.substring(startIndex,endIndex);substring()方法可以接受以上两个参数,其详细介绍如下所示。
●startIndex 一个整数,指定要提取的子字符串的第一个字符位置,其有效值的范围从0到String.length。
如果startIndex参数是一个负值,则从索引0开始。
●endIndex 一个整数,它比所提取的子字符串中的最后一个字符的索引大1,其有效范围从0到String.length,默认为允许的最大索引值。
需要注意的是,endIndex处的字符不包含在子字符串中。
如果省略该参数,则使用String.length;如果该参数是一个负值,则结束索引为0。
返回一个空字符串;如果在执行函数之前会自动交换参数。
原始字符串保持不变。
substr()方法返回一个子字符串,该子字符串是从指定的起始索引位置开始,按照指定的长度截取所得的。
该方法的一般形式如下所示。
String.substr(startIndex,length);substr()方法可以接受以上两个参数,其详细介绍如下所示。
●startIndex 一个整数,指定子字符串第一个字符的索引位置。
如果该参数是一个负值,则起始索引从字符串的末尾开始确定,其中-1表示最后一个字符;-2表示倒数第二个字符等。
length 指定子字符串要提取的字符数,默认值为所允许的最大值。
如果未指定length参数,则子字符串包含从起始索引位置到字符串末尾的所有字符。
ActionScript编程 匹配多个字符或字符串

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"));需要注意的是加号“+”和星号“*”元字符之间是有区别的。
ActionScript编程 综合实例:文字搜索程序

ActionScript编程综合实例:文字搜索程序文字是记录或描述某些事物的特殊符号。
在ActionScript中,通常也需要使用文字来描述程序,或者根据程序的响应向用户传递相应的提示信息。
但如果描述的文字过多,又希望能够快速从中查询到想要的内容,此时就需要使用搜索程序。
本例将制作一个简单的搜索程序,可以对外部文本文档中的内容进行搜索,并显示这些关键字在内容中的索引位置。
文字搜索程序如图11-1所示。
图11-1 文字搜索程序制作过程:(1)新建550×500像素的空白文档,将素材图像导入到【库】面板中。
然后,将背景图像拖入到舞台中,并在舞台的右上角输入标题名称,如图11-2所示。
图11-2 拖入背景图像(2)在背景图像上面绘制一个圆角矩形,将其转换为影片剪辑元件,并为其添加“投影”滤镜效果,如图11-3所示。
图11-3 添加滤镜效果(3)将导入的按钮素材转换为影片剪辑元件,并在【元件属性】面板中导出为button类。
然后,将TextArea组件拖入到【库】面板中,如图11-4所示。
图11-4 拖入TextArea组件(4)在相同文件夹中新建名称为search的ActionScript文件,并在该文件中使用import语句导入所需的类,以及创建包、search类和search()主函数,如下所示。
package {import flash.display.Sprite;import flash.text.TextField;import flash.text.TextFieldType;import flash.text.TextFormat;import flash.display.MovieClip;import flash.events.Event;import .URLLoader;import .URLRequest;import fl.controls.TextArea;import flash.events.MouseEvent;import flash.text.TextFieldAutoSize;import flash.system.System;public class search extends Sprite {private var contentTxt:TextArea;//用于显示文本内容的文本字段private var keyInput:TextField;//用于输入查询关键字的文本字段private var result:TextField;//用于显示结果的文本字段public function search() {//主函数体}}}(5)创建名称为createTextField的函数,该函数可以根据传递的参数返回一个指定样式的文本字段,如下所示。
ActionScript编程 匹配常用字符串

ActionScript编程匹配常用字符串作用:通过正则表达式判断各种Flash程序中常见的字符串型数据是否符合要求。
说明:在编写ActionScript应用程序时,经常需要对一些带有固定格式的字符串进行匹配。
例如,匹配日期、电话等。
在这时,就需要使用正则表达式。
通过正则表达式对字符串进行匹配,可以获取这些字符串是否符合规范。
示例:1.匹配中国人姓名在之前的小节中已介绍过匹配中文的方式。
中国人姓名通常由2到4个中文汉字组成,因此,其正则表达式如下所示。
/^[\u4e00-\u9fa5]{2,4}$/2.匹配QQ号QQ是国内使用非常频繁的即时通信工具。
QQ号码最小为10000,目前最多可达到10位,因此,匹配QQ号的正则表达式如下所示。
/^[1-9][0-9]{4,9}$/3.匹配日期日期的格式有很多种,例如,符合中国习惯的XXXX年XX月XX日,或符合欧美习惯的mm/dd/yyyy等。
其中,年份通常是以19或20开头的4位数字,因此,其正则表达式应为“(19|20)\d{2}”,月份则介于是1到12之间的2位十进制数字,因此,其正则表达式应为“(0[1-9]|(1(0|1|2)))”。
天数为1到31之间的2位十进制数字,因此,其正则表达式应为“(0[1-9]|((1|2)\d)|(3(0|1)))”。
匹配符合中国习惯的日期,如下所示。
/^(19|20)\d{2}年(0[1-9]|(1(0|1|2)))月(0[1-9]|((1|2)\d)|(3(0|1)))日$/根据上面的正则表达式,用户也可以编写符合欧美日期习惯的正则表达式,如下所示。
/^(0[1-9]|(1(0|1|2)))\/(0[1-9]|((1|2)\d)|(3(0|1)))\/(19|20)\d{2}$/4.匹配身份证号码中国的身份证号码通常为15或18位的数字,最后1位数字有可能为X,因此,可以根据这些特征编写正则表达式,如下所示。
ActionScript编程 替换匹配的字符串

ActionScript编程替换匹配的字符串作用:使用正则表达式结合replace()方法,替换字符串中符合正则表达式要求的子字符串。
说明:在之前的章节中,已经介绍过通过字符串实例的replace()方法对字符串中部分字符进行替换。
replace()方法除了以字符串替换字符串外,还可以通过正则表达式对字符串进行替换。
replace()方法带有两个参数,分别为查找的字符串或正则表达式,以及替换之后的字符串、函数或正则表达式。
以正则表达式作为replace()方法的参数,可以实现很多强大的功能。
示例:使用正则表达式对字符串进行替换可以使代码更加简练,也可以省去许多麻烦。
例如,将替换1段包含各种注释符号的古文种所有注释的括号和括号中的数字删除,如下所示。
var txt:String="十年(1)春,齐师(2)伐(3)我。
公(4)将战,曹刿(5)请见。
其乡人曰:“肉食者(6)谋之,又何间(7)焉?”刿曰:“肉食者鄙(8),未能远谋。
”乃(9)入见。
问:“何以战(10)?”公曰:“衣食所安,弗敢专也(11),必以分人(12)。
”对曰:“小惠未徧(13),民弗从也。
”公曰:“牺牲玉帛(14),弗敢加(15)也,必以信(16)。
”对曰:“小信未孚(17),神弗福(18)也。
”公曰:“小大之狱(19),虽不(20)能察(21),必以情(22)。
”对曰:“忠之属也(23)。
可以一战(24)。
战则请从(25)。
”"在上面这段文本中,共包含25个注释符号。
如使用字符串来替换,需要编写25行代码对其进行替换;或根据这些注释符号的规律,使用循环语句替换。
以上两种方式都非常烦琐。
事实上,使用正则表达式才是最简便的方法。
首先,编写匹配这些注释符号的正则表达式,如下所示。
var txtRegExp:RegExp=/\(\d{1,2}\)/g;然后,对字符串使用replace()方法,然后即可将替换后得到的文本重新赋给字符串,并输出结果,如下所示。
ActionScript字符串操作

∙ package com.xlands.utils∙ {∙ import flash.utils.ByteArray;∙∙∙ /**∙ *字符串工具∙ *∙ */∙ public class StringUtil∙ {∙∙ //忽略大小字母比较字符是否相等;∙ public static function equalsIgnoreCase(char1:String, char 2:String):Boolean∙ {∙ return char1.toLowerCase() == char2.toLowerCase(); ∙ }∙∙ //比较字符是否相等;∙ public static function equals(char1:String, char2:String): Boolean∙ {∙ return char1 == char2;∙ }∙∙ //是否为Email地址;∙ public static function isEmail(char:String):Boolean∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ char=trim(char);∙ var pattern:RegExp=/(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/ ;∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ //是否是数值字符串;∙ public static function isNumber(char:String):Boolean ∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ return !isNaN(parseInt(char))∙ }∙∙ //是否为Double型数据;∙ public static function isDouble(char:String):Boolean ∙ {∙ char=trim(char);∙ var pattern:RegExp=/^[-\+]?\d+(\.\d+)?$/;∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ //Integer;∙ public static function isInteger(char:String):Boolean ∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ char=trim(char);∙ var pattern:RegExp=/^[-\+]?\d+$/;∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ //English;∙ public static function isEnglish(char:String):Boolean ∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ char=trim(char);∙ var pattern:RegExp=/^[A-Za-z]+$/;∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ //中文;∙ public static function isChinese(char:String):Boolean∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ char=trim(char);∙ var pattern:RegExp=/^[\u0391-\uFFE5]+$/;∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ //双字节∙ public static function isDoubleChar(char:String):Boolean ∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ char=trim(char);∙ var pattern:RegExp=/^[^\x00-\xff]+$/;∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ //含有中文字符∙ public static function hasChineseChar(char:String):Boolean ∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ char=trim(char);∙ var pattern:RegExp=/[^\x00-\xff]/;∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ //注册字符;∙ public static function hasAccountChar(char:String, len:uin t=15):Boolean∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ if (len < 10)∙ {∙ len=15;∙ }∙ char=trim(char);∙ var pattern:RegExp=new RegExp("^[a-zA-Z0-9][a-zA-Z0-9_ -]{0," + len + "}$", "");∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ public static function isURL(char:String):Boolean∙ {∙ if (char == null)∙ {∙ return false;∙ }∙ char=trim(char).toLowerCase();∙ var pattern:RegExp=/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9 ]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;∙ var result:Object=pattern.exec(char);∙ if (result == null)∙ {∙ return false;∙ }∙ return true;∙ }∙∙ // 是否为空白;∙ public static function isWhitespace(char:String):Boolean ∙ {∙ switch(char)∙ {∙ case " ":∙ case "\t":∙ case "\r":∙ case "\n":∙ case "\f":∙ return true;∙ default:∙ return false;∙ }∙ }∙∙ //去左右空格;∙ public static function trim(char:String):String∙ {∙ if (char == null)∙ {∙ return null;∙ }∙ return rtrim(ltrim(char));∙ }∙∙ public static function ltrim(char:String):String∙ {∙ if (char == null)∙ {∙ return null;∙ }∙ var pattern:RegExp=/^\s*/;∙ return char.replace(pattern, "");∙ }∙∙ //去右空格;∙ public static function rtrim(char:String):String∙ {∙ if (char == null)∙ {∙ return null;∙ }∙ var pattern:RegExp=/\s*$/;∙ return char.replace(pattern, "");∙ }∙∙ //是否为前缀字符串;∙ public static function beginsWith(char:String, prefix:Stri ng):Boolean∙ {∙ return (prefix == char.substring(0, prefix.length)); ∙ }∙∙ //是否为后缀字符串;∙ public static function endsWith(char:String, suffix:String ):Boolean∙ {∙ return (suffix == char.substring(char.length - suffix. length));∙ }∙∙ //去除指定字符串;∙ public static function remove(char:String, remove:String): String∙ {∙ return replace(char, remove, "");∙ }∙∙ public static function replace(char:String, replace:String , replaceWith:String):String∙ {∙ return char.split(replace).join(replaceWith);∙ }∙∙ //utf16转utf8编码;∙ public static function utf16to8(char:String):String∙ {∙ var out:Array=new Array();∙ var len:uint=char.length;∙ for(var i:uint=0; i < len; i++)∙ {∙ var c:int=char.charCodeAt(i);∙ if (c >= 0x0001 && c <= 0x007F)∙ {∙ out[i]=char.charAt(i);∙ }∙ else if (c > 0x07FF)∙ {∙ out[i]=String.fromCharCode(0xE0 | ((c >> 12) & 0x0F), 0x80 | ((c >> 6) & 0x3F), 0x80 | ((c >> 0) & 0x3F));∙ }∙ else∙ {∙ out[i]=String.fromCharCode(0xC0 | ((c >> 6) & 0x1F), 0x80 | ((c >> 0) & 0x3F));∙ }∙ }∙ return out.join('');∙ }∙∙ //utf8转utf16编码;∙ public static function utf8to16(char:String):String∙ {∙ var out:Array=new Array();∙ var len:uint=char.length;∙ var i:uint=0;∙ while(i < len)∙ {∙ var c:int=char.charCodeAt(i++);∙ switch(c >> 4)∙ {∙ case 0:∙ case 1:∙ case 2:∙ case 3:∙ case 4:∙ case 5:∙ case 6:∙ case 7:∙ // 0xxxxxxx∙ out[out.length]=char.charAt(i - 1);∙ break;∙ case 12:∙ case 13:∙ // 110x xxxx 10xx xxxx∙ var char2:int=char.charCodeAt(i++);∙ out[out.length]=String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));∙ break;∙ case 14:∙ // 1110 xxxx 10xx xxxx 10xx xxxx∙ var char3:int=char.charCodeAt(i++);∙ var char4:int=char.charCodeAt(i++);∙ out[out.length]=String.fromCharCode(((c & 0x0F) << 12) | ((char3 & 0x3F) << 6) | ((char4 & 0x3F) << 0));∙ break;∙ }∙ }∙ return out.join('');∙ }∙∙ public static function autoReturn(str:String, c:int):Strin g∙ {∙ var l:int=str.length;∙ if (l < 0)∙ return "";∙ var i:int=c;∙ var r:String=str.substr(0, i);∙ while(i <= l)∙ {∙ r+="\n";∙ r+=str.substr(i, c);∙ i+=c;∙ }∙ }∙∙ public static function limitStringLengthByByteCount(str:St ring, bc:int, strExt:String="..."):String∙ {∙ if (str == null || str == "")∙ {∙ return str;∙ }∙ else∙ {∙ var l:int=str.length;∙ var c:int=0;∙ var r:String="";∙ for(var i:int=0; i < l; ++i)∙ {∙ var code:uint=str.charCodeAt(i);∙ if (code > 0xffffff)∙ {∙ c+=4;∙ }∙ else if (code > 0xffff)∙ {∙ c+=3;∙ }∙ else if (code > 0xff)∙ {∙ c+=2;∙ }∙ else∙ {∙ ++c;∙ }∙∙ if (c < bc)∙ {∙ r+=str.charAt(i);∙ }∙ else if (c == bc)∙ {∙ r+=str.charAt(i);∙ r+=strExt;∙ break;∙ else∙ {∙ r+=strExt;∙ break;∙ }∙ }∙ return r;∙ }∙ }∙∙ public static function getCharsArray(targetString:String, hasBlankSpace:Boolean):Array∙ {∙ var tempString:String=targetString;∙ if (hasBlankSpace == false)∙ {∙ tempString=trim(targetString);∙ }∙ return tempString.split("");∙ }∙∙ private static var CHINESE_MAX:Number = 0x9FFF;∙ private static var CHINESE_MIN:Number = 0x4E00;∙∙ private static var LOWER_MAX:Number = 0x007A;∙ private static var LOWER_MIN:Number = 0x0061;∙∙ private static var NUMBER_MAX:Number = 0x0039;∙ private static var NUMBER_MIN:Number = 0x0030;∙∙ private static var UPPER_MAX:Number = 0x005A;∙ private static var UPPER_MIN:Number = 0x0041;∙ /**∙ * 返回一段字符串的字节长度(汉字一个字占2,其他占1)∙ */∙ public static function getStringBytes(str:String):int ∙ {∙ return getStrActualLen(str);∙ /* var n:int=0;∙ var l:int=str.length;∙ for(var i:int=0; i < l; ++i)∙ {∙ var code:Number=str.charCodeAt(i);∙ if (code >= CHINESE_MIN && code <= CHINESE_MAX) ∙ {∙ n+=2;∙ }∙ else∙ {∙ ++n;∙ }∙ }∙ return n;*/∙ }∙∙ /**∙ * 按字节长度截取字符串(汉字一个字占2,其他占1)∙ */∙ public static function substrByByteLen(str:String, len:int ):String∙ {∙ if (str == "" || str == null)∙ return str;∙ var n:int=0;∙ var l:int=str.length;∙ for(var i:int=0; i < l; ++i)∙ {∙ var char:String=str.charAt(i);∙ n += getStrActualLen(char);∙ if (n > len)∙ {∙ str=str.substr(0, i - 1);∙ break;∙ }∙ }∙ return str;∙ }∙∙ /**∙ * 返回一段字符串的字节长度∙ */∙/* public static function getStringByteLength(str:String):int ∙ {∙ if (str == null)∙ return 0;∙ var t:ByteArray=new ByteArray();∙ t.writeUTFBytes(str);∙ return t.length;∙ }*/∙∙ public static function getStrActualLen(sChars:String) : in t {∙ if (sChars == "" || sChars == null)∙ return 0;∙ else∙ return sChars.replace(/[^\x00-\xff]/g,"xx").length ;∙ }∙∙ public static function isEmptyString(str:String):Boolean ∙ {∙ return str == null || str == "";∙ }∙∙ private static var NEW_LINE_REPLACER:String=String.fromCha rCode(6);∙∙ public static function isNewlineOrEnter(code:uint):Boolean ∙ {∙ return code == 13 || code == 10;∙ }∙∙ public static function removeNewlineOrEnter(str:String):St ring∙ {∙ str=replace(str, "\n", "");∙ return replace(str, "\r", "");∙ }∙∙ /**∙ * 替换掉文本中的 '\n' 为 '\7'∙ */∙ public static function escapeNewline(txt:String):String ∙ {∙ return replace(txt, "\n", NEW_LINE_REPLACER);∙ }∙∙ /**∙ * 替换掉文本中的 '\7' 为 '\n'∙ */∙ public static function unescapeNewline(txt:String):String ∙ {∙ return replace(txt, NEW_LINE_REPLACER, "\n");∙ }∙∙ /**∙ * 判断哪些是全角字符,如果不含有返回空∙ */∙ public static function judge(s:String):String∙ {∙ var temps:String="";∙ var isContainQj:Boolean=false;∙ for(var i:Number=0; i < s.length; i++)∙ {∙ //半角长度是一,特殊符号长度是三,汉字和全角长度是9∙ if (escape(s.substring(i, i + 1)).length > 3)∙ {∙ temps+="'" + s.substring(i, i + 1) + "' "; ∙ isContainQj=true;∙ }∙ }∙ if (isContainQj)∙ {∙ temps;∙ }∙ return temps;∙ }∙∙ /**∙ * 汉字、全角数字和全角字母都是双字节码,第一个字节的值减去160表示该字在字库中的区∙码,第二个字节的值减去160为位码,如‘啊’的16进制编码为B0 A1,换算成十进制数就是∙ 176和161,分别减去160后就是16和1,即‘啊’字的区位码是1601,同样数字和字母的区位∙码也是如此,如‘0’是0316,‘1’是0317等,因此判断汉字及全角字符基本上只要看其连∙续的两个字节是否大于160,至于半角字符和数字则更简单了,只要到ASCII码表中查一查就∙知道了。
ActionScript编程 搜索匹配元素

ActionScript编程搜索匹配元素作用:搜索数组中第一个匹配指定值的元素。
说明:当搜索数组中第一个匹配指定值的元素时,可以使用for语句遍历数组。
一旦找到匹配值,就以break语句跳出循环。
由于for语句执行循环时碰到break语句,即会使该循环停止。
因此,需要把break语句放在if语句内,使其只有在特定条件满足时才会执行。
此外,break语句对于搜索第一个匹配值非常重要,因为它可以确保只有第一个相匹配的元素被找到,而后续相匹配的元素都会被忽略。
如果将break语句省略,则所有相匹配的元素都会被搜索出来,而非只有第一个相匹配的元素。
使用for语句搜索数组中匹配元素的方法如下所示。
var myArray:Array = new Array(…values);for(var i:int = 0; i < myArray.length;i ++){if(myArray[i] == math){statement;break;}}在上面的代码中,…values表示数组中一系列的元素;math表示要与数组中元素相匹配的指定值。
通过if语句判断数组中的元素是否与math值相等,如果相等则调用break 语句跳出循环,实现搜索数组中第一个相匹配的元素。
为了简化搜索相匹配元素的过程,可以使用Array类的indexOf()方法和lastIndexOf()方法。
indexOf()方法使用全等运算符(===)搜索数组中的项,并返回元素的索引位置,使用方法如下所示。
var index:int = myArray.indexOf(searchElement,fromIndex);indexOf()方法的参数介绍如下所示。
●searchElement 要在数组中查找的元素。
●fromIndex 指定数组中的位置,从该位置开始搜索元素,默认值为0。
indexOf()方法返回一个表示数组元素索引位置的整数(从0开始)。
ActionScript编程 搜索匹配的子字符串

ActionScript编程搜索匹配的子字符串作用:在字符串中搜索与指定项相匹配的子字符串或索引值。
说明:search()方法用于获取与指定项相匹配的第一个子字符串的索引位置,其一般形式如下所示。
String.search(pattern);search()方法只接受一个pattern参数,它表示要搜索的子字符串,可以是任何类型的对象,但通常是字符串或正则表达式。
如果pattern 不是字符串或正则表达式,则该方法在执行前会将其转换为字符串。
search()方法返回第一个匹配子字符串的索引值。
如果没有匹配的子字符串,则该方法返回-1。
字符串的索引从零开始,第一个字符位于索引0处,最后一个字符位于String.length - 1处。
式的全局标志持其值不变)返回match()方法用于搜索字符串中相匹配的子字符串,其一般形式如下所示。
String.match(pattern);match()方法也只接受一个pattern参数,它表示要搜索的子字符串,可以为任何类型的对象,但通常是字符串或正则表达式。
如果pattern 不是正则表达式或字符串,则该方法在执行前会将其转换为字符串。
如果pattern是正则表达式,为了返回一个具有多个匹配子字符串的数组,必须在该正则表达式中设置g(全局)标志:如果未设置g(全局)标志,则返回的数组包含的匹配项将不多于一项,且正则表达式的lastIndex属性保持不变。
如果已设置g(全局)标志,则该方法从字符串的起始处(索引位置0)开始搜索。
如果匹配的子字符串为空字符串,则该方法将此空字符串添加到匹配项数组,然后在下一个索引位置继续搜索。
该方法完成后,将正则表达式的lastIndex属性设置为0。
match()方法返回一个字符串数组,其中包括所有相匹配的子字符串。
如果未找到匹配项,该方法返回null。
如果未传递值(或传递了未定义的值)作为pattern参数,则该方法返回null。
ActionScript编程 获取字符串的长度

ActionScript编程获取字符串的长度作用:获取字符串中所包含字符的字符数。
说明:String类的length属性用于获取指定字符串中的字符数,其一般形式如下所示。
String.length;每个字符串都有length属性,其值等于字符串中的字符数,如下所示。
var str:String = "abcde";trace(str.length); //输出5空字符串和null字符串的长度均为0,如下所示。
var str1:String = new String();var str2:String = "";trace(str1.length); //输出0trace(str2.length); //输出0示例:将文本存储到字符串中,有时需要获取该文本的字符数。
例如,使用length属性获取上一节中spring、summer、autumn和winter字符串的长度,如下所示。
var spring:String = "春天:春暖花开春寒料峭";var summer:String = " 夏天:烈日炎炎暴风骤雨";var autumn:String = "秋天:一叶知秋秋风瑟瑟";var winter:String = " 冬天:寒风凛冽千里冰封";trace(spring.length); //输出12trace(summer.length); //输出13trace(autumn.length); //输出13trace(winter.length); //输出14在上面的示例中,summer的第一个字符、autumn的最后一个字符以及winter的第一个和最后一个字符均包含有空格符。
从输出的结果可以看出,无论是中文字、空格还是标点符号,它们均代表为一个字符,因此输出的结果为12、13、13和14。
ActionScript编程 测试字符串

ActionScript编程测试字符串作用:测试一个字符串是否符合日期格式。
如是,则计算自纪元日截至该时间已过了多少毫秒。
说明:在ActionScript中,Date类提供了parse()方法,以对一个字符串进行测试,如其符合日期的要求,则计算自纪元时间到该字符串所表示的时间之间间隔的毫秒数。
parse()方法是一个静态方法,因此在使用parse()方法时,应以Date类本身来调用,如下所示。
Date.parse(TimeString);在上面的代码中,TimeString是一个字符串。
parse()方法可以识别7种字符串及其部分内容,如下所示。
MO/DD/YYYY HH:MM:SS TZDHH:MM:SS TZD MO/DD/YYYYMon DD YYYY HH:MM:SS TZDMon DD HH:MM:SS TZD YYYYDD Mon HH:MM:SS TZD YYYYMon/DD/YYYY HH:MM:SS TZDYYYY/MO/DD HH:MM:SS TZD在上面这些格式中,各关键词的含义如表22-7所示。
示例:parse()方法可以识别按照指定格式书写的表示时间的字符串。
例如,列出Flash CS4发布时的时间,将其声明为7种字符串,然后使用parse()方法来测试。
var time1:String="09/23/2008 20:00:00 UTC-0500"var time2:String="20:00:00 UTC-0500 09/23/2008"var time3:String="Sep 23 2008 20:00:00 UTC-0500"var time4:String="Sep 23 20:00:00 UTC-0500 2008"var time5:String="23 Sep 20:00:00 UTC-0500 2008"var time6:String="Sep/23/2008 20:00:00 UTC-0500"var time7:String="2008/09/23 20:00:00 UTC-0500"trace(Date.parse(time1));trace(Date.parse(time2));trace(Date.parse(time3));trace(Date.parse(time4));trace(Date.parse(time5));trace(Date.parse(time6));trace(Date.parse(time7));执行上面的结果,将输出7个完全相同的值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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次搜索。
2.搜索并匹配字符串
如果需要依据正则表达式对字符串进行多次搜索,可以使用字符串实例的match()方法。
match()方法返回的值通常为一个数组,包含一个或多个搜索的结果。
例如,搜索之前的字符串中包含多少汉字,可以首先编写一个匹配汉字的正则表达式,如下所示。
var newRegExp:RegExp=/[\u4e00-\u9fa5]{1}/;
然后,使用match()方法匹配字符串,如下所示。
str:String="ActionScript和JavaScript都是ECMAScript的子集";
trace(str.match(newRegExp));
执行上面的代码,用户将会发现,match()方法仍然只进行了1次搜索,输出的结果是汉字“和”。
如果需要进行多次搜索,应对正则表达式进行修改,为其添加/g的标志,如下所示。
var myRegExp:RegExp=/[\u4e00-\u9fa5]{1}/g;
trace(str.match(myRegExp));
执行上面的代码,用户即可发现,添加过/g标志后match()输出的结果就是字符串中所有的汉字了,如下所示。
和,都,是,的,子,集。