字元類別
Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本
您使用字元類別來指定字元清單,以比對規則運算式中的一個位置。您以方括號定義字元類別 ([ 和 ])。例如,下列規則運算式定義符合 bag、beg、big、bog 或 bug 的字元類別:
/b[aeiou]g/
字元類別中的跳脫序列
通常,在規則運算式中具有特殊意義的大部分中繼字元和中繼序列,在字元類別中「並不具有」相同的意義。例如,在規則運算式中,星號是用於重複,但是在字元類別中則具有不同的功用。下列字元類別會比對星號本身,跟所列出的任何其它字元一起進行比對:
/[abc*123]/
然而,下表所列的三個字元確實是做為字元類別中的中繼字元進行運作,而具有特殊意義:
中繼字元
|
在字元類別中的意義
|
]
|
定義字元類別的結尾。
|
-
|
定義字元範圍 (請參閱下面「字元類別中的字元範圍」一節)。
|
\
|
定義中繼序列並復原中繼字元的特殊意義。
|
如果要將這些字元識別為常值字元 (沒有特殊的中繼字元意義),您必須在字元前加上反斜線跳脫字元。例如,下列規則運算式包含與如下四種符號其中一種相符的字元類別 ($、\、] 或 -):
/[$\\\]\-]/
除了保留本身之特殊意義的中繼字元外,下列中繼序列會在字元類別內以中繼序列方式運作:
中繼序列
|
在字元類別中的意義
|
\n
|
與新行字元相符。
|
\r
|
與歸位字元相符。
|
\t
|
與定位點字元相符。
|
\unnnn
|
與帶有指定 Unicode 碼位值的字元相符 (以十六進位數字 nnnn 指定)。
|
\\xnn
|
與帶有指定 ASCII 值的字元相符 (以十六進位數字 nn 指定)。
|
在字元類別中,其它規則運算式中繼序列和中繼字元都會視為一般字元處理。
字元類別中的字元範圍
使用連字符號來指定字元範圍,如 A-Z、a-z 或 0-9。這些字元必須在字元集中構成有效範圍。例如,下列字元類別符合 a-z 範圍中的任一字元或任何數字:
/[a-z0-9]/
您也可以使用 \\xnn ASCII 字元碼,以 ASCII 值指定範圍。例如,下列字元類別與擴充 ASCII 字元集的任何字元相符 (如 é 和 ê):
\\x
負的字元類別
當您在字元類別開頭使用跳脫 (^) 字元時,它會使該類別變為負數,而未列示的所有字元都會視為相符。下列字元類別與任何字元相符,「除了」小寫字母 (a–z) 或數字以外:
/[^a-z0-9]/
您必須在字元類別的「開頭」輸入跳脫 (^) 字元,以表示負值。否則,您只是將跳脫字元新增到字元類別的字元中。例如,下列字元類別與一些符號字元的其中任何一個相符,包括跳脫字元:
/[!.,#+*%$&^]/