1.修饰符

i (ignore)不区分大小写

  1. "abc Abc ABc aBc aBC".match(/abc/i);//abc,Abc,ABc,aBc,aBC

g (global)全局匹配

  • 如果不带g,正则过程中字符串从左到右匹配,找到第一个符合条件的即匹配成功,返回
  • 如果带g,则字符串从左到右,找到每个符合条件的都记录下来,知道字符串结尾位置
    1. var str = 'aaaaaaaa'
    2. var reg1 = /a/; str.match(reg1) // 结果为:["a", index: 0, input: "aaaaaaaa"]
    3. var reg2 = /a/g; str.match(reg2) // 结果为:["a", "a", "a", "a", "a", "a", "a", "a"]

    m (more)行匹配

    若存在换行\n并且有开始^或结束$符的情况下,和g一起使用实现全局匹配。
    因为存在换行时默认会把换行符作为一个字符任务匹配字符串是个单行,g只匹配第一行,添加m之后实现多行,每个换行符之后就是开始。
    1. var str = "abcggab\nabcoab";
    2. var preg1 = /^abc/gm; str.match(preg1) // 结果为:["abc", "abc"]
    3. var preg2 = /ab$/gm; str.match(preg2) // 结果为:["ab", "ab"]

    s 可以匹配换行符

u 匹配最近一个字符,不重复匹配