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

时间:2015-01-13 06:23:01

标签: javascript regex

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

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

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

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

2 个答案:

答案 0 :(得分:62)

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修饰符不存在,那么正则表达式将返回第一个匹配! See here

如果g存在,它将返回整个或任何匹配的内容。See here

答案 1 :(得分:15)

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

gi修饰符具有以下含义:

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

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