📜  JavaScript String match()方法(1)

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

JavaScript String match() 方法

match() 方法用于在一个字符串中查找一个匹配正则表达式的字符串,并返回匹配结果。

语法
str.match(regexp)

其中 str 为调用 match() 方法的字符串,regexp 为要匹配的正则表达式。

返回值

若匹配成功,返回一个包含匹配结果的数组,否则返回 null

示例
const str = "Hello World!";
const regex = /W.+/;
console.log(str.match(regex)); // 输出 ["World!"]

const str2 = "2020-07-30";
const regex2 = /(\d{4})-(\d{2})-(\d{2})/;
const [, year, month, day] = str2.match(regex2);
console.log(`${year}年${month}月${day}日`); // 输出 2020年07月30日

在第一个示例中,正则表达式 /W.+/ 匹配到了字符串 "Hello World!" 中的 "World!",返回了一个只包含一个元素的数组 ["World!"]

在第二个示例中,正则表达式 /\d{4}-\d{2}-\d{2}/ 匹配到了字符串 "2020-07-30",返回了一个包含三个元素的数组 ["2020-07-30", "2020", "07", "30"]。通过解构赋值,在输出时可以方便地将年月日取出并进行格式化。

注意事项
  • 使用 match() 方法时,如果正则表达式不包括全局匹配标志 g,则仅返回第一个匹配项。如果带有全局标志 g,则返回所有匹配项。
  • 返回的数组除了第一个元素为匹配到的字符串,其余元素包含括号中的子表达式匹配到的字符串。如果正则表达式不包含括号,则返回的结果中不包含其他元素。
  • 如果传入参数 regexp 不是正则表达式,则会隐式调用 new RegExp(regexp),因此可以传入字符串形式的正则表达式。