JS 正则表达式 match
在 JavaScript 中,正则表达式是很有用的一种工具,用于匹配和验证字符串。其中,match() 是一个常用的方法,它可以返回一个字符串中满足正则表达式的所有子串。
基本用法
在示例代码中,使用 match() 方法来查找给定字符串中是否包含数字。其中 \d
是一个正则表达式元字符,用于表示数字。
const str = 'hello 123 world 456';
const regex = /\d+/g;
const matches = str.match(regex);
console.log(matches); //['123','456']
在上面的代码中,g
标志用于全局搜索,即搜索整个字符串。
使用捕获组
除了匹配字符串外,正则表达式还可以使用捕获组。捕获组是一些括号 ()
包括的正则表达式,用于从匹配的字符串中提取信息。
在示例代码中,使用正则表达式匹配一个由单词和数字组成的字符串,并使用捕获组提取所有数字和单词。其中,([a-z]+)
用于匹配一个或多个小写字母,(\d+)
用于匹配一个或多个数字。
const str = 'hello123world456';
const regex = /([a-z]+)(\d+)/g;
let matches;
while ((matches = regex.exec(str))) {
console.log(matches[0]); // hello123, world456
console.log(matches[1]); // hello, world
console.log(matches[2]); // 123, 456
}
匹配 HTML 标签
正则表达式也可以用来匹配 HTML 标签,示例代码如下:
const htmlString = '<a href="https://www.google.com">Google</a><img src="test.jpg" />';
const regex = /<(\w+)\s*([^>]*)>/g;
let matches;
while ((matches = regex.exec(htmlString))) {
console.log(matches[1]); // a, img
const attribs = matches[2].split(/\s+/);
console.log(attribs); // ["href=\"https://www.google.com\""],["src=\"test.jpg\""]
}
在这个示例中,<(\w+)
用于匹配一个 HTML 标签的名称,([^>]+)
用于匹配标签的属性。split(/\s+/)
可以将属性从字符串中提取出来。
结论
match() 是 JavaScript 正则表达式中一个十分有用的方法,它可以帮助开发者查找并提取匹配正则表达式的所有子串。我们可以使用 match() 来进行字符串匹配,在匹配的过程中,我们可以使用正则表达式元字符、捕获组等功能,实现更为灵活的匹配方式。