正则表达式中/ gi的含义是什么?

bat*_*man 63 javascript regex

我在我的JavaScript代码中看到一行如下:

var regex = /[^\w\s]/gi;
Run Code Online (Sandbox Code Playgroud)

/gi正则表达式中这是什么意思?

其他部分我可以理解,因为它接受一组单词和空格,但不是/gi.

vks*_*vks 77

g modifier: global. All matches (don't return on first match)

i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
Run Code Online (Sandbox Code Playgroud)

在你的情况下虽然i是不重要的,因为你没有捕获[a-zA-Z].

对于输入,!@#$如果g修饰符不存在,正则表达式将返回第一个匹配!请参见此处.

如果g在那里它将返回整体或它可以匹配的任何东西.看这里


eli*_*ide 21

开头和结尾/称为分隔符.他们告诉口译员正则表达式的开始和结束.在这种情况下,结束分隔符之后的任何内容都称为"修饰符" .gi

gi改性剂具有以下含义:

  • g = global,匹配字符串中所有模式的实例,而不仅仅是一个
  • i=不区分大小写(因此,例如,/a/i将匹配字符串"a""A".

在你给(/[^\w\s]/gi)的上下文中,i没有意义,因为正则表达式没有特定于案例的部分.