Les différences entre les replace(/[^a-z0-9]/gi, ") et replace(/[^a-zA-Z0-9]/g, ")
Sont il des différences entre ces deux?
replace(/[^a-z0-9]/gi, '');
replace(/[^a-zA-Z0-9]/g, '');
Aussi, il y a aucune différence significative dans le temps à l'aide de l'un ou l'autre?
edit: sur la performance, j'ai fait quelques tests http://jsperf.com/myregexp-test
non, ils font la même chose
Être conscient de ce qu'il fait réellement. Essayez
mais à la fin il n'y a pas une solution en JS pour ce problème. Même
Qui n'est pas strictement vrai. Le XRegExp plugin pour Javascript donne accès à l'Unicode catégorie générale, les scripts et les propriétés d'un bloc que le Javascript sur son propre, donc scandaleusement néglige. Cela signifie qu'avec elle, vous pouvez utiliser le
+1 je ne savais pas qu'il était un JS de remplacement pour les Regex. Très bon à savoir.
Être conscient de ce qu'il fait réellement. Essayez
"naïve".replace(/[^a-z0-9]/gi, '');
mais à la fin il n'y a pas une solution en JS pour ce problème. Même
\W
fait de même.Qui n'est pas strictement vrai. Le XRegExp plugin pour Javascript donne accès à l'Unicode catégorie générale, les scripts et les propriétés d'un bloc que le Javascript sur son propre, donc scandaleusement néglige. Cela signifie qu'avec elle, vous pouvez utiliser le
\pL
et \pN
et autres, ainsi que \p{Latin}
, \p{Common}
, etc.+1 je ne savais pas qu'il était un JS de remplacement pour les Regex. Très bon à savoir.
OriginalL'auteur ajax333221 | 2011-09-04
Vous devez vous connecter pour publier un commentaire.
Nope, par le premier, le
i
à la fin rend l'expression régulière insensible à la casse ce qui signifie qu'il n'a pas d'importance si la lettre qu'elle trouve est en majuscule ou en minuscule.La deuxième correspond majuscules et en minuscules, mais permet de s'assurer qu'ils sont soit en majuscule ou en minuscule. Si vous vous retrouvez avec le même résultat.
Σ
,σ
, etς
sont tous insensiblement équivalent, et vous ne pourriez pas obtenir tous si vous simplement énumérés deux d'entre eux dans une classe de caractères comme[Σσ]
, car ce serait manquer le sigma final,ς
. Parce que Javascript ne prend pas en charge Unicode, vous êtes foutu ici, mais dans un réel^H^H^H^Hnormal langue, casefolding serait ramasser toutes dans un/Σ/i
match.C'est la bonne réponse
OriginalL'auteur qwertymk