規則運算式基本課程

規則運算式的使用簡介

規則運算式可描述字元模式。規則運算式通常用來驗證文字值是否符合特定模式 (如驗證使用者輸入的電話號碼是否包含正確的位數),或是用來取代符合特定模式的部分文字值。

規則運算式很簡單。例如,假定您希望確認特定字串與 "ABC" 相符,或希望以其它文字取代字串中所有的 "ABC"。在這種情況下,您可以透過下列規則運算式來定義由字母 A、B、C 依序組成的模式:

/ABC/

請注意,規則運算式常值是以正斜線 (/) 字元加以區隔。

規則運算式的模式可能很複雜,而且有時看起來含意模糊,如下列與有效電子郵件地址相符的運算式:

/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/

大部分情況下,您會使用規則運算式來搜尋字串中的各種模式,並取代其中一些字元。在這些情況下,您會建立一個規則運算式物件,並把它當做參數,套用在數種 String 類別方法中的一種當中。下列 String 類別的方法將規則運算式當做參數使用:match()replace() search()split()。如需有關這些方法的詳細資訊,請參閱尋找字串中的樣式並取代子字串

RegExp 類別包含下列方法:test()exec()。如需詳細資訊,請參閱搭配字串使用規則運算式的方法

常見規則運算式工作

本章將針對規則運算式,詳細介紹下列幾種常見的使用方式:

重要概念與術語

下列參考清單包含了本章所使用的重要術語:

逐步執行章節內的範例

當您研讀本章的內容時,可能會想要自行測試其中的部分範例程式碼列表。因為本章內的程式碼列表主要由規則運算式模式構成,測試範例時需要執行下列幾個步驟:

  1. 建立新的 Flash 文件。
  2. 選取關鍵影格,並開啟「動作」面板。
  3. 建立 RegExp (規則運算式) 變數,如這一個變數:
    var pattern:RegExp = /ABC/;
    
  4. 複製範例中的模式,再將它指定為 RegExp 變數的值。例如,在上一行程式碼中,模式是等號右邊不包括分號的程式碼部分 (/ABC/)。
  5. 建立一個或多個含有適合用來測試規則運算式之字串的 String 變數。例如,如果您要建立規則運算式以測試電子郵件地址是否有效,就建立一些包含有效及無效電子郵件地址的 String 變數:
    var goodEmail:String = "bob@example.com";
    var badEmail:String = "5@$2.99";
    
  6. 加入幾行程式碼來測試 String 變數,判斷其是否符合規則運算式模式。這些值將會是您要輸出到螢幕的值,輸出的方式不外是使用 trace() 函數,或是寫入「舞台」上的文字欄位中。
    trace(goodEmail, " is valid:", pattern.test(goodEmail));
    trace(badEmail, " is valid:", pattern.test(badEmail));
    

    例如,假設 pattern 定義了有效電子郵件地址的規則運算式模式,程式碼的前幾行會將這個文字寫在「輸出」面板上:

    bob@example.com is valid: true
    5@$2.99 is valid: false
    

    測試這些值時,可以將值寫入「舞台」上的文字欄位實體中,也可以使用 trace() 函數將值列印至「輸出」面板;如需詳細資訊,請參閱測試章節內的範例程式碼列表


Flash CS3

 

有新的意見加入至這個頁面時,傳送電子郵件給我 | 意見報告

目前頁面: http://livedocs.adobe.com/flash/9.0_tw/main/00000111.html