match函数第三个参数
更新时间:2023-06-17什么是match函数?
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。它返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
var str = "The rain in Spain falls mainly in the plain"; var res = str.match(/ain/g);
上面的例子中,数组 res 存放了在字符串中找到的所有 "ain"。
match()函数的第三个参数
这是match()函数的语法:
string.match(regexp)
regexp:必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数将其转换为 RegExp 对象。
我们现在来看一下 match 函数的第三个参数。第三个参数 flags 是可选的,它可以是下面的任何一个值:
- i:不区分大小写
- g:全文查找出现的所有匹配字符
- m:多行查找
- u:Unicode匹配模式
- y:执行“粘性”搜索,匹配从目标字符串的当前位置开始。如果没有从当前位置开始的匹配,则匹配失败
match()函数的 flags 参数的使用场景
flags 参数对于正则表达式中的某些特性很有用。举例如下:
1. 不区分大小写:
var str = "Visit W3School. Visit Microsoft."; var res = str.match(/visit/gi);
在这种情况下,match() 函数返回字符串中所有的“visit”和“Visit”。
2. 全文查找出现的所有匹配字符:
var str = "The rain in Spain falls mainly in the plain. The rain in Spain is beautiful."; var res = str.match(/ain/g);
上述代码将返回字符串中所有的“ain”,即 ["ain", "ain", "ain"]。如果没有设置全局标志(g),则 res 只会匹配到第一个“ain”。
3. 多行查找:
var str = "John\nDoe"; var res = str.match(/o/gm);
在这种情况下,match() 函数将返回字符串中所有的“o”,即 ["o", "o", "o"]。
结论
在实际开发中,match() 函数的第三个参数不是必需的,但当你需要某些特定的正则表达式特性时,这个参数便可以派上用场。