字元類別

Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本

您使用字元類別來指定字元清單,以比對規則運算式中的一個位置。您以方括號定義字元類別 ([])。例如,下列規則運算式定義符合 bagbegbigbogbug 的字元類別:

/b[aeiou]g/

字元類別中的跳脫序列

通常,在規則運算式中具有特殊意義的大部分中繼字元和中繼序列,在字元類別中「並不具有」相同的意義。例如,在規則運算式中,星號是用於重複,但是在字元類別中則具有不同的功用。下列字元類別會比對星號本身,跟所列出的任何其它字元一起進行比對:

/[abc*123]/

然而,下表所列的三個字元確實是做為字元類別中的中繼字元進行運作,而具有特殊意義:

中繼字元

在字元類別中的意義

]

定義字元類別的結尾。

-

定義字元範圍 (請參閱下面「字元類別中的字元範圍」一節)。

\

定義中繼序列並復原中繼字元的特殊意義。

如果要將這些字元識別為常值字元 (沒有特殊的中繼字元意義),您必須在字元前加上反斜線跳脫字元。例如,下列規則運算式包含與如下四種符號其中一種相符的字元類別 ($\]-):

/[$\\\]\-]/

除了保留本身之特殊意義的中繼字元外,下列中繼序列會在字元類別內以中繼序列方式運作:

中繼序列

在字元類別中的意義

\n

與新行字元相符。

\r

與歸位字元相符。

\t

與定位點字元相符。

\unnnn

與帶有指定 Unicode 碼位值的字元相符 (以十六進位數字 nnnn 指定)。

\\xnn

與帶有指定 ASCII 值的字元相符 (以十六進位數字 nn 指定)。

在字元類別中,其它規則運算式中繼序列和中繼字元都會視為一般字元處理。

字元類別中的字元範圍

使用連字符號來指定字元範圍,如 A-Za-z0-9。這些字元必須在字元集中構成有效範圍。例如,下列字元類別符合 a-z 範圍中的任一字元或任何數字:

/[a-z0-9]/

您也可以使用 \\xnn ASCII 字元碼,以 ASCII 值指定範圍。例如,下列字元類別與擴充 ASCII 字元集的任何字元相符 (如 éê):

\\x

負的字元類別

當您在字元類別開頭使用跳脫 (^) 字元時,它會使該類別變為負數,而未列示的所有字元都會視為相符。下列字元類別與任何字元相符,「除了」小寫字母 (a–z) 或數字以外:

/[^a-z0-9]/

您必須在字元類別的「開頭」輸入跳脫 (^) 字元,以表示負值。否則,您只是將跳脫字元新增到字元類別的字元中。例如,下列字元類別與一些符號字元的其中任何一個相符,包括跳脫字元:

/[!.,#+*%$&^]/