Je vois une ligne dans mon code JavaScript comme ceci:
var regex = /[^\w\s]/gi;
Que signifie cela /gi
dans la regex?
Je peux comprendre une autre partie car elle accepte un groupe de mots et d’espaces, mais pas /gi
.
g modifier: global. All matches (don't return on first match)
i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
Dans votre cas, cependant, i
n'a aucune importance, car vous ne capturez pas [a-zA-Z]
.
Pour une entrée comme !@#$
_ si g
le modificateur n’est pas disponible, regex retournera la première correspondance !
Voir ici .
Si g
est là, il retournera le tout ou ce qui peut lui correspondre . Voir ici
Le début et la fin /
s'appellent des délimiteurs. Ils disent à l'interprète où commence et finit la regex. Anything after le délimiteur de fermeture est appelé "modificateur", dans ce cas g
et i
.
Les modificateurs g
et i
ont les significations suivantes:
g
= global, correspond à toutes les occurrences du motif d'une chaîne, pas à une seulei
= insensible à la casse (ainsi, par exemple, /a/i
va correspondre à la chaîne "a"
ou "A"
.Dans le contexte que vous avez donné (/[^\w\s]/gi
), le i
n'a pas de sens, car il n'y a pas de parties de l'expression régulière spécifiques à la casse.