📜  Javascript字符串match()(1)

📅  最后修改于: 2023-12-03 15:01:48.553000             🧑  作者: Mango

JavaScript 字符串 match()

在 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 字符串的理解。