溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

AS3中Flex正則表達(dá)式怎么用

發(fā)布時(shí)間:2021-12-04 13:55:20 來(lái)源:億速云 閱讀:139 作者:小新 欄目:編程語(yǔ)言

這篇文章給大家分享的是有關(guān)AS3中Flex正則表達(dá)式怎么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

AS3中的Flex正則表達(dá)式

一、定義方式,可以有兩種

varpattern1:RegExp=newRegExp("test-\\d","i");
varpattern2:RegExp=/test-\d/i;

1)使用new來(lái)新建一個(gè)RegExp對(duì)象,其中參數(shù)為1)表達(dá)式字符串2)表達(dá)式的參數(shù),這種方式如果要用\,一定要用\\來(lái)轉(zhuǎn)義。
2)直接采用/形式,以把表達(dá)式的內(nèi)容寫到/……./里面,在后面跟上表達(dá)式的參數(shù),參數(shù)字符可以同時(shí)添加多個(gè),例如:/………/gi

二、Flex正則表達(dá)式參數(shù)介紹

1)Dotall屬性,用s字符表示參數(shù),指定字符(.)在表達(dá)式里是不是匹配新行,如果使用了s參數(shù),那就表示dotall表示真
例:

varstr:String="<p>Hello\n" +"again</p>"  +"<p>Hello</p>";  varpattern:RegExp=/<p>.*?<\/p>/;  trace(pattern.dotall)//false  trace(pattern.exec(str));//<p>Hello</p> pattern=/<p>.*?<\/p>/s;  trace(pattern.dotall)//true  trace(pattern.exec(str));

2)Extended屬性,用x參數(shù)表示,指是否在表達(dá)式定義的時(shí)候是否忽略空格
例:

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á)式在匹配以后在下次匹配的時(shí)候是從頭再來(lái)還是從上次匹配過(guò)的地方開始,其lastIndex屬性會(huì)保存起來(lái)。
例:

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á)式匹配的時(shí)候是否區(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屬性,指定下次查詢的起始位置,這個(gè)屬性影響兩個(gè)方法exec()和test(),match(),replace(),search()方法是忽略這個(gè)屬性的,他們總是從頭開始的。

這個(gè)屬性要和global結(jié)合使用,當(dāng)global為true時(shí),執(zhí)行exec()和test()后,lastIndex屬性會(huì)被設(shè)置為下一個(gè)字符,如果是false,則會(huì)從頭開始。
例:

6)multiline屬性,用m參數(shù)表示,指表達(dá)式匹配的時(shí)候用字符(^)和($)分別表示在之前或之后有新的一行。

例:

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.輸入:傳入一個(gè)String類型的參數(shù),表示要查詢的字符串。
ii.返回:如果沒(méi)有匹配到就返回null,否則返回一個(gè)Object對(duì)象。
這個(gè)Object對(duì)象的屬性:
a)一個(gè)Array(數(shù)組),元素0包含一個(gè)匹配得到的子串,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]是一個(gè)空串(***個(gè)\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.輸入:傳入一個(gè)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)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI