JavaScript RegExp m 修饰符

定义和用法

"m" 修饰符规定多行匹配。

它只影响开头处 ^ 和结尾处 $ 的行为。

^ 规定字符串开头的匹配项。

$ 规定字符串末尾的匹配项。

设置 "m" 后,^$ 也匹配每行的开头和结尾。

实例

在字符串中每一行的开头,多行搜索 "is":

let text = `Is this
all there
is`

let pattern = /^is/m;

亲自试一试

提示 1

"m" 修饰符区分大小写而非全局。

如需执行全局、不区分大小写的搜索,请将 "m" 与 "g" 和 "i" 一起使用。

例子 1

在每个字符串行的开头对 "is" 进行全局多行搜索:

let text = `Is this
all there
is`

let pattern = /^is/gm;

亲自试一试

例子 2

在每个字符串行的开头对 "is" 进行全局、不区分大小写的多行搜索:

let text = `Is this
all there
is`

let pattern = /^is/gmi;

亲自试一试

例子 3

在每个字符串行的末尾对 "is" 进行全局多行搜索:

let text = `Is this
all there
is`

let text = "Is\nthis\nhis\n?";
let pattern = /is$/gm;

亲自试一试

提示 2

可使用 multiline 属性检查是否设置了 m 修饰符。

Check if the "m" modifier is set:
let pattern = /W3S/gi;
let result = pattern.multiline;

亲自试一试

语法

new RegExp("regexp", "m")

或者简写:

/regexp/m

浏览器支持

/regexp/m 是 ECMAScript3 (ES3) 特性。

所有浏览器都支持 ES3 (JavaScript 1999):

Chrome IE Edge Firefox Safari Opera
支持 支持 支持 支持 支持 支持

正则表达式搜索方法

在 JavaScript 中,正则表达式文本搜索可以用不同的方法完成。

使用模式(pattern)作为正则表达式,这些是最常用的方法:

举例 描述
text.match(pattern) 字符串方法 match()
text.search(pattern) 字符串方法 search()
pattern.exec(text) RexExp 方法 exec()
pattern.test(text) RexExp 方法 test()