1.基本語法
. 匹配除換行符"\n"外的任意單個字符。
* 匹配前面Flex正則表達式的零次或多次出現。
eg:Alert.show("ThisBookIsGoodBoooookBoxBx.".replace(/Bo*/g,"Coo"))
ThisCookIsGoodCookCooxCoox
+ 匹配前面Flex正則表達式的一次或多次出現。
eg:Alert.show("ThisBookIsGoodBoooookBoxBx.".replace(/Bo+/g,"Coo"))
ThisCookIsGoodCookCooxBx
? 代表出現在它之前的項目有或沒有均可。
eg:Alert.show("ThisBookisGoodBook".replace(/G?oo/g,"Coo"));
ThisBCookisCoodBCook.
{} 根據括號內的不同而不同。單個數字{n}意味着前面的模式重復n次,如:[A-Z]{3};{n1,n2}表示重復n1-n2次;{名字}指示用名字替換。
eg:{n}在它之前出現的項目必須重復n次,{n,}在它之前出現的項目至少重復n次,{n,m}在它出現之前的項目重復n次到m次
Alert.show("ThisBookidgoodBoooooookBok".replace(/Bo{3,}k/g,"_"));
ThisBookidgood_Bok
() 將一系列Flex正則表達式歸組。"*"、"+"和"{}"中的每個都直接作用於它左側的表達式,而"|"通常影響左側表達式和右側的所有內容。
eg:把字符串組成一個組,要求A后面可以出現0次或者多次字串Go的重復
Alert.show(AGoGoIsAnameAGo'Sfather".replace(/A(Go)*/g,"_"));
_Is_name_'sfather
[] 匹配括號中字符的任意一個。用"-"指示字符的范圍。如果第一個字符是抑揚符號"^",那么它的含義變為匹配括號內字符以外援任意字符,及表反義。
eg1:Alert.show("我的Book價格是45元".replace(/[^0-9a-z]/g,"*"));
***ook***45*
eg2:Alert.show(AGoGoIsAonameAGo'Sfather".replace(/A[Go]/g,"_"));
_ oGoIs_name_o'sfather
\ 如果后面是小寫字母,就是C轉義序列,否則引用后面的字符。
"..." 匹配引號內的內容
/ 只有當有后面的表達式跟隨時才匹配前面的表達式.
^ Flex正則表達式的第一個字符,它匹配行的開始;在方括號中用於否定,其它方面沒有特殊情況
Alert.show("ABAEF\nABSD\nABFFD".replace(/^AB/gm,"你好"));
你好AEF
你好SD
你好FFD
$ Flex正則表達式的最后一個字符,它匹配行的結尾-其他方面沒有特殊情況。
<> 位於模式開頭的尖括號內的一個或一列使那個模式只應用於指定的起始狀態。
<<EOF>> 在flex中,這個特殊的模式<<EOF>>匹配文件的結尾。
\b 匹配一個單詞邊界,也就是指單詞和空格間的位置。
\B 匹配非單詞邊界。
\cx 匹配由x指明的控制字符。
\d 匹配一個數字字符。等價於[0-9]。
\D 匹配一個非數字字符。等價於[^0-9]。
\f 匹配一個換頁符。等價於\x0c和\cL。
\n 匹配一個換行符。等價於\x0a和\cJ。
\r 匹配一個回車符。等價於\x0d和\cM。
\s 匹配任何空白字符,包括空格、制表符、換頁符等等。等價於[\f\n\r\t\v]。
\S 匹配任何非空白字符。等價於[^\f\n\r\t\v]。
\t 匹配一個制表符。等價於\x09和\cI。
\v 匹配一個垂直制表符。等價於\x0b和\cK。
\w 匹配包括下划線的任何單詞字符。等價於’[A-Za-z0-9_]’。
\W 匹配任何非單詞字符。等價於’[^A-Za-z0-9_]’。
\xn 匹配n,其中n為十六進制轉義值。十六進制轉義值必須為確定的兩個數字長。
\num匹配num,其中num是一個正整數。對所獲取的匹配的引用。
\n 標識一個八進制轉義值或一個后向引用。如果\n之前至少n個獲取的子表達式,則n為后向引用。否則,如果n為八進制數字(0-7),則n為一個八進制轉義值。
\nm 標識一個八進制轉義值或一個后向引用。如果\nm之前至少有isprecededbyatleastnm個獲取得子表達式,則nm為后向引用。如果\nm之前至少有n個獲取,
則n為一個后跟文字m的后向引用。如果前面的條件都不滿足,若n和m均為八進制數字(0-7),則\nm將匹配八進制轉義值nm。
2.語法延伸
^\d+$//匹配非負整數(正整數+0)
^[0-9]*[1-9][0-9]*$//匹配正整數
^((-\d+)|(0+))$//匹配非正整數(負整數+0)
^-[0-9]*[1-9][0-9]*$//匹配負整數
^-?\d+$//匹配整數
^\d+(\.\d+)?$//匹配非負浮點數(正浮點數+0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$//匹配正浮點數
^((-\d+(\.\d+)?)|(0+(\.0+)?))$//匹配非正浮點數(負浮點數+0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$//匹配負浮點數
^(-?\d+)(\.\d+)?$//匹配浮點數
^[A-Za-z]+$//匹配由26個英文字母組成的字符串
^[A-Z]+$//匹配由26個英文字母的大寫組成的字符串
^[a-z]+$//匹配由26個英文字母的小寫組成的字符串
^[A-Za-z0-9]+$//匹配由數字和26個英文字母組成的字符串
^\w+$//匹配由數字、26個英文字母或者下划線組成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$//匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$//匹配ip
匹配url匹配中文字符的Flex正則表達式:[\u4e00-\u9fa5]
匹配雙字節字符(包括漢字在內):[^\x00-\xff]
匹配空行的Flex正則表達式:\n[\s|]*\r
匹配HTML標記的Flex正則表達式:/<(.*)>.*<\/>|<(.*)\/>/
匹配首尾空格的Flex正則表達式:(^\s*)|(\s*$)
匹配Email地址的Flex正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的Flex正則表達式:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
匹配帳號是否合法(字母開頭,允許5-16字節,允許字母數字下划線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配國內電話號碼:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配騰訊QQ號:^[1-9]*[1-9][0-9]*$