match 方法

使用正则表达式模式对字符串执行搜索,并返回一个包含该搜索结果的数组。

function match(rgExp : RegExp) : Array

实参

  • rgExp
    必选。 包含正则表达式模式和适用标志的 Regular Expression 对象的实例。 也可以是包含正则表达式模式和标志的变量名或字符串。

备注

如果 match 方法没有找到匹配,将返回 null。 如果找到匹配,则 match 方法返回一个数组,并将更新全局 RegExp 对象的属性以反映匹配结果。

match 方法返回的数组有三个属性:inputindexlastIndex.Input 属性包含整个被搜索的字符串。 Index 属性包含了在整个被搜索字符串中匹配的子字符串的位置。 lastIndex 属性包含了前一次匹配中最后一个字符的下一个位置。

如果没有设置全局标志 (g),数组元素 0 包含整个匹配,而元素 1 到元素 n 包含了匹配中曾出现过的任一个子匹配。 当该方法上没有设置全局标志时,此行为与 exec 方法的行为相同。 如果设置了全局标志,则元素 0 到元素 n 包含所有出现的匹配。

示例

下面的示例阐释了 match 方法在未设置全局标志 (g) 时的用法:

var src = "Please send mail to george@contoso.com and someone@example.com. Thanks!";

// Create a regular expression to search for an e-mail address.
// The global flag is not included.
// (More sophisticated RegExp patterns are available for
// matching an e-mail address.)
var re = /(\w+)@(\w+)\.(\w+)/;

var result = src.match(re);

// Because the global flag is not included, the entire match is
// in array element 0, and the submatches are in elements 1 through n.
print(result[0]);
for (var index = 1; index < result.length; index++)
{
    print("submatch " + index + ": " + result[index]);
}

// Output:
//  george@contoso.com
//  submatch 1: george
//  submatch 2: contoso
//  submatch 3: com

本示例阐释设置了当设置全局标志 (g) 时,match 方法的使用。

var src = "Please send mail to george@contoso.com and someone@example.com. Thanks!";

// Create a regular expression to search for an e-mail address.
// The global flag is included.
var re = /(\w+)@(\w+)\.(\w+)/g;

var result = src.match(re);

// Because the global flag is included, the matches are in
// array elements 0 through n.
for (var index = 0; index < result.length; index++)
{
    print(result[index]);
}

// Output:
//  george@contoso.com
//  someone@example.com

下列代码行阐释了 match 方法如何用于字符串。

var re = /th/i;
var result = "through the pages of this book".match(re);

要求

版本 3

应用于:

String 对象

请参见

参考

exec 方法

RegExp 对象

正则表达式对象

replace 方法

search 方法

test 方法

概念

正则表达式编程