flags标志

用来扩展正则表达式匹配字符的适用范围。

g

全局匹配。不仅仅返回匹配的第一个结果,而是全部。

i

忽略匹配字符的大小写。

m

多行匹配。用于^$这两个边界符,作用于每一行。

s

表示元字符 . 匹配任意字符,包含换行符。

u

默认使用UTF-16编码匹配字符,而flag:u,通过码点值匹配字符。
关键点对于基本平面的字符,UTF-16编码和码点值是一样的。但是增补平面的字符,UTF-16编码和码点值不一样。
例子

  1. //"a你Aa"
  2. const regUnicode = /\u{2F804}\u0041/gu; //使用码点值匹配:"你A"
  3. const reg = /\uD87E\uDC04\u0041/g; //使用utf-16编码匹配:"你A"

y

sticky:粘住、黏住的意思。
只会尝试从lastIndex设置的位置处,尝试匹配,不会像全局匹配,匹配不成功会跳到下一个位置。
关键点同时使用flag:yg,会忽略g。

d

indices:匹配区间。
正则表达式在执行结束,会返回匹配到的字符串的位置区间。

var str = '#foo#';
var regex = /foo/d;
console.log(regex.exec(str));

image.png