📅  最后修改于: 2023-12-03 15:01:48.553000             🧑  作者: Mango
在 JavaScript 中,match()
方法用于在字符串中搜索指定的正则表达式,并返回一个包含匹配字符串的数组。
string.match(regexp)
其中,string
是要搜索的字符串,regexp
是要在 string
中搜索的正则表达式,可以是字符串或正则表达式对象。
该方法返回一个包含匹配字符串的数组。如果未找到匹配字符串,则返回 null
。
以下示例搜索字符串中以 "w3schools" 开头的所有单词:
var str = "Visit W3Schools! Learn JavaScript!";
var patt = /w3schools/i;
var result = str.match(patt);
console.log(result); // ["W3Schools", index: 6, input: "Visit W3Schools! Learn JavaScript!", groups: undefined]
在上述示例中,变量 str
是要搜索的字符串,变量 patt
是用于搜索的正则表达式。i
修饰符用于指示搜索应忽略大小写。结果是一个数组 result
,包含匹配的字符串 "W3Schools"
,以及其在原始字符串中的位置和原始字符串本身。
首先,我们需要定义一个包含待搜索字符串的变量。然后,我们创建一个正则表达式,用于搜索该字符串。接下来,我们使用 match()
方法执行实际的搜索,并在结果数组中获取匹配字符串。
var str = "The rain in Spain falls mainly on the plain";
var patt = /ain/g;
var result = str.match(patt);
console.log(result); // ["ain", "ain", "ain"]
在上述示例中,我们搜索字符串 "The rain in Spain falls mainly on the plain"
中的所有子字符串 "ain"
。由于给定正则表达式包含 g
修饰符,因此会找到所有出现的匹配项。结果是一个数组 { "ain", "ain", "ain" }
,包含所有匹配的子字符串。
我们也可以使用正则表达式来搜索字符串。不同于先前的例子,这里我们定义的是一个用于搜索所有 JavaScript 注释的正则表达式。
var str = "/* Not a comment */ function func() { } // Comment";
var patt = /\/\*[\s\S]*?\*\/|\/\/.*$/gm;
var result = str.match(patt);
console.log(result); // ["/* Not a comment */", "// Comment"]
在上述示例中,我们搜索了输入字符串中的所有 JavaScript 注释。变量 patt
包含为此目的创建的正则表达式,该表达式将搜索所有以 /*
开始的注释、以 */
结束的注释和以 //
开始的单行注释。g
修饰符表明搜索至多进行一次,而 m
修饰符表明搜索应在多行字符串中执行。
结果是一个数组 { "/* Not a comment */", "// Comment" }
,包含所有搜索到的字符串。
match()
方法允许我们搜索字符串中的正则表达式,并返回一个包含所有匹配字符串的数组。对于单行和多行字符串,以及单词和注释等各种搜索任务,该方法非常有用。了解如何使用 match()
方法可以提高我们对 JavaScript 字符串的理解。