match 方法
使用正则表达式模式对字符串执行搜索,并返回一个包含该搜索结果的数组。
function match(rgExp : RegExp) : Array
实参
- rgExp
必选。 包含正则表达式模式和适用标志的 Regular Expression 对象的实例。 也可以是包含正则表达式模式和标志的变量名或字符串。
备注
如果 match 方法没有找到匹配,将返回 null。 如果找到匹配,则 match 方法返回一个数组,并将更新全局 RegExp 对象的属性以反映匹配结果。
match 方法返回的数组有三个属性:input、index 和 lastIndex.。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);