搭配字串使用規則運算式的方法

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

RegExp 類別包含兩種方法:exec()test()

除了 RegExp 類別的 exec()test() 方法以外,String 類別也包含下列方法,讓您在字串中比對規則運算式:match()replace()search()splice()

test() 方法

RegExp 類別的 test() 方法只會檢查所提供的字串是否包含規則運算式的相符項目,如下列範例所示:

var pattern:RegExp = /Class-\w/; 
var str = "Class-A"; 
trace(pattern.test(str)); // output: true

exec() 方法

RegExp 類別的 exec() 方法會檢查對規則運算式相符項目所提供的字串,並傳回帶有下列項目的陣列:

  • 符合的子字串

  • 子字串會比對規則運算式中的任何括號群組

陣列也包含 index 屬性,指出子字串相符項目開頭的索引位置。

例如,以下列程式碼為例:

var pattern:RegExp = /\d{3}\-\d{3}-\d{4}/; //U.S phone number 
var str:String = "phone: 415-555-1212"; 
var result:Array = pattern.exec(str); 
trace(result.index, " - ", result); 
// 7-415-555-1212

當規則運算式設定了 g (global) 旗標時,請使用 exec() 方法多次,以比對多個子字串:

var pattern:RegExp = /\w*sh\w*/gi; 
var str:String = "She sells seashells by the seashore"; 
var result:Array = pattern.exec(str); 
     
while (result != null) 
{ 
    trace(result.index, "\t", pattern.lastIndex, "\t", result); 
    result = pattern.exec(str); 
} 
//output:  
// 0      3      She 
// 10      19      seashells 
// 27      35      seashore

使用 RegExp 參數的 String 方法

下列 String 類別的方法會將規則運算式當做參數使用:match()replace() search()split()。如需有關這些方法的詳細資訊,請參閱尋找字串中的樣式並取代子字串