這篇文章給大家分享的是有關(guān)AS3中Flex正則表達(dá)式怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
新城網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
AS3中的Flex正則表達(dá)式
一、定義方式,可以有兩種
varpattern1:RegExp=newRegExp("test-\\d","i");
varpattern2:RegExp=/test-\d/i;
1)使用new來新建一個RegExp對象,其中參數(shù)為1)表達(dá)式字符串2)表達(dá)式的參數(shù),這種方式如果要用\,一定要用\\來轉(zhuǎn)義。
2)直接采用/形式,以把表達(dá)式的內(nèi)容寫到/……./里面,在后面跟上表達(dá)式的參數(shù),參數(shù)字符可以同時添加多個,例如:/………/gi
二、Flex正則表達(dá)式參數(shù)介紹
1)Dotall屬性,用s字符表示參數(shù),指定字符(.)在表達(dá)式里是不是匹配新行,如果使用了s參數(shù),那就表示dotall表示真
例:
varstr:String="Hello\n" +"again
" +"Hello
"; varpattern:RegExp=/.*?<\/p>/; trace(pattern.dotall)//false trace(pattern.exec(str));//
Hello
pattern=/.*?<\/p>/s; trace(pattern.dotall)//true trace(pattern.exec(str));
2)Extended屬性,用x參數(shù)表示,指是否在表達(dá)式定義的時候是否忽略空格
例:
varrePhonePattern1:RegExp=/\d{3}-\d{3}-\d{4}|\(\d{3}\)\s?\d{3}-\d{4}/; varstr:String="Thephonenumberis(415)555-1212."; trace(rePhonePattern1.extended)//false trace(rePhonePattern1.exec(str));//(415)555-1212 varrePhonePattern2:RegExp=/\d{3}-\d{3}-\d{4}|\(\d{3}\)\?\d{3}-\d{4}/x; trace(rePhonePattern2.extended)//true trace(rePhonePattern2.exec(str));//
(415)555-12123)global屬性,用g參數(shù)表示,指是否用表達(dá)式在匹配以后在下次匹配的時候是從頭再來還是從上次匹配過的地方開始,其lastIndex屬性會保存起來。
例:
varpattern:RegExp=/foo\d/; varstr:String="foo1foo2"; trace(pattern.global);//false trace(pattern.exec(str));//foo1 trace(pattern.lastIndex);//0 trace(pattern.exec(str));//foo1 pattern=/foo\d/g; trace(pattern.global);//true trace(pattern.exec(str));//foo1 trace(pattern.lastIndex);//4 trace(pattern.exec(str));//foo2
4)ignoreCase屬性,用i參數(shù)表示,指表達(dá)式匹配的時候是否區(qū)別大小寫。
例:
varpattern:RegExp=/bob/; varstr:String="Bobbob"; trace(pattern.ignoreCase);//false trace(pattern.exec(str));//bob pattern=/bob/i; trace(pattern.ignoreCase);//true trace(pattern.exec(str));//Bob
5)lastIndex屬性,指定下次查詢的起始位置,這個屬性影響兩個方法exec()和test(),match(),replace(),search()方法是忽略這個屬性的,他們總是從頭開始的。
這個屬性要和global結(jié)合使用,當(dāng)global為true時,執(zhí)行exec()和test()后,lastIndex屬性會被設(shè)置為下一個字符,如果是false,則會從頭開始。
例:
6)multiline屬性,用m參數(shù)表示,指表達(dá)式匹配的時候用字符(^)和($)分別表示在之前或之后有新的一行。
例:
varpattern:RegExp=/^bob/; varstr:String="foo\n" +"bob"; trace(pattern.multiline);//false trace(pattern.exec(str));//null pattern=/^bob/m; trace(pattern.multiline);//true trace(pattern.exec(str));//bob
7)source屬性,返回表達(dá)式的定義字符串。
例:
varre1:RegExp=/aabb/gi; trace(re1.source);//aabb varre2:RegExp=newRegExp("x+y*","i"); trace(re2.source);//x+y*
三、Flex正則表達(dá)式方法介紹
1)Exec()方法:
i.輸入:傳入一個String類型的參數(shù),表示要查詢的字符串。
ii.返回:如果沒有匹配到就返回null,否則返回一個Object對象。
這個Object對象的屬性:
a)一個Array(數(shù)組),元素0包含一個匹配得到的子串,1到n包含,其中定義的組所匹配的字符子串
b)Index匹配子串在字符串里的位置
c)Input輸入的原始字符串。
例:
varmyPattern:RegExp=/(\w*)sh(\w*)/ig; varstr:String="Shesellsseashellsbytheseashore"; varresult:Object=myPattern.exec(str); trace(result);
輸出:
result[0]是”she”
result[1]是一個空串(***個\w是匹配到空的子串)
result[2]是”e”
result.index是0
result.input是”Shesellsseashellsbytheseashore”
設(shè)置了g(global)屬性的例子:
varmyPattern:RegExp=/(\w*)sh(\w*)/ig; varstr:String="Shesellsseashellsbytheseashore"; varresult:Object=myPattern.exec(str); while(result!=null){ trace(result.index,"\t",result); result=myPattern.exec(str); }
輸出:
0She,,e
10seashells,sea,ells
27seashore,sea,ore
2)Test()方法:
i.輸入:傳入一個String類型的參數(shù),表示要查詢的字符串。
ii.返回:如果匹配返回true,否則返回false.
例:
varmyPattern:RegExp=/(\w*)sh(\w*)/ig; varstr:String="Shesellsseashellsbytheseashore"; varresult:Object=myPattern.exec(str); trace(result);
感謝各位的閱讀!關(guān)于“AS3中Flex正則表達(dá)式怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!