2015-01-13 13 views
28

Ich sehe eine Linie in meinem JavaScript-Code wie folgt aus:Was bedeutet/gi in einer Regex?

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

Was ist der Sinn dieser /gi in der Regex?

Andere Teil kann ich verstehen, da es eine Gruppe von Wörtern und Leerzeichen akzeptiert, aber nicht /gi.

+0

Eigentlich entspricht es einem * einzigen * "non-word", Nicht-Leerzeichen "[^ A-Za-z0-9_ \ s]". –

Antwort

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

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

In Ihrem Fall obwohl i ist unerheblich, wie Sie erfassen [a-zA-Z] nicht.

Für Eingabe wie [email protected]#$ wenn g Modifizierer ist nicht dort Regex wird erste Übereinstimmung zurückgeben !See here.

Wenn g da ist, gibt es das ganze zurück oder was auch immer es zusammenbringen kann. See here

9

g = global, alle Instanzen in einer Zeichenfolge übereinstimmen, nicht nur eine

i = Groß- und Kleinschreibung

Im Kontext Sie gab (/[^\w\s]/gi), die i ist sinnlos, weil es keinen Fall gibt -spezifische Teile der Regex.