blog

博客

View on GitHub

js正则表达式修饰符

参数 含义 结果
i 忽略大小写 如果不写,默认的是区分大小写的
g 全局匹配 如果不写,结果是只要匹配到一个就返回
m 多行匹配 如果不写,则只是匹配一行

i g 比较好理解就不详细说明了,重点说下m

m 表示多行匹配。如果字符串只有1行,不含有换行符\n/m是没有意义的。
并且 正则表达式中含有^$的时候,/m修饰符才有作用

例如

var mutiline = /^abc/m;
var singleline = /^abc/;
var target = "ef\r\nabcd";
alert(mutiline.test(target));//true
alert(singleline.test(target));//false

如上可以看到 singleline的正则匹配的是 以abc为开头的字符,没有/m的情况下
无法匹配到第二行(\n表示换行,所以是第二行)的abc。 但是加了/m的情况下就可以匹配到了