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的情况下就可以匹配到了