关于javascript:正则表达式中/ gi的含义是什么?

What's the meaning of /gi in a regex?

本问题已经有最佳答案,请猛点这里访问。

我在我的javascript代码中看到这样一行:

1
var regex = /[^\w\s]/gi;

在regex中,这个/gi的意思是什么?

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


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

i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])

在你的情况下,虽然i是无关紧要的,因为你不捕捉[a-zA-Z]

对于输入,如!@#$,如果g修饰符不存在,regex将返回第一个匹配的!,请参见此处。

如果g在那里,它将返回全部或它能匹配的任何东西。


开始和结束的/称为定界符。它们告诉解释器regex的开始和结束位置。结束分隔符之后的任何内容都称为"修饰符",在本例中是gi

gi修饰语具有以下含义:

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

在您给出的上下文中(/[^\w\s]/gi中),i没有意义,因为regex没有特定于案例的部分。