📅  最后修改于: 2023-12-03 15:16:06.973000             🧑  作者: Mango
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)
,因此可以传入字符串形式的正则表达式。