建立規則運算式的實體

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

有兩個方法可以建立規則運算式實體。其中一個方法是使用正斜線字元 ( / ) 來區隔規則運算式,另一個方法則是使用 new 建構函式。例如,下列規則運算式是相等的:

var pattern1:RegExp = /bob/i; 
var pattern2:RegExp = new RegExp("bob", "i");

正斜線區隔規則運算式常值的方式與引號區隔字串常值的方式相同。規則運算式在正斜線內的部分定義了「模式」。規則運算式在最後的區隔斜線之後,也能包含「旗標」。這些旗標被視為規則運算式的一部分,但是與其模式分隔開來。

當您使用 new 建構函式時,要使用兩個字串來定義規則運算式。第一個字串定義模式,第二個字串則定義旗標,如下列範例所示:

var pattern2:RegExp = new RegExp("bob", "i");

當您將正斜線納入以正斜線分隔符號定義的規則運算式「之中」時,必須在正斜線之前加上反斜線 ( \ ) 跳脫字元。例如,下列規則運算式比對模式 1/2

var pattern:RegExp = /1\/2/;

若要將引號納入以 new 建構函式定義的規則運算式「之中」,您必須在引號前加上反斜線 ( \ ) 跳脫字元 (如同您在定義任何 String 常值一樣)。例如,下列規則運算式比對 eat at "joe's" 的模式:

var pattern1:RegExp = new RegExp("eat at \"joe's\"", ""); 
var pattern2:RegExp = new RegExp('eat at "joe\'s"', "");

請不要在以正斜線分隔符號定義的規則運算式中,同時使用反斜線跳脫字元和引號。同樣的,也請不要在以 new 建構函式定義的規則運算式中,同時使用跳脫字元和正斜線。下列規則運算式是柤等的,都是定義 1/2 "joe's" 模式:

var pattern1:RegExp = /1\/2 "joe's"/; 
var pattern2:RegExp = new RegExp("1/2 \"joe's\"", ""); 
var pattern3:RegExp = new RegExp('1/2 "joe\'s"', '');

另外,在以 new 建構函式定義的規則運算式中,若要使用以反斜線 ( \ ) 字元開頭的中繼序列,如 \d (比對任何數字),請輸入反斜線字元兩次:

var pattern:RegExp = new RegExp("\\d+", ""); // matches one or more digits

在這種情況下,您必須輸入反斜線字元兩次,因為 RegExp() 建構函式方法的第一個參數是字串,而在字串常值中,您必須輸入反斜線字元兩次,才能將其辨識為單一反斜線字元。

本節以下部分將說明規則運算式模式的定義語法。

如需有關旗標的詳細資訊,請參閱 旗標和屬性