Comment supprimer tous les caractères d'une chaîne
Comment puis-je supprimer tous les caractères d'une chaîne de caractères qui ne sont pas des lettres à l'aide d'un JavaScript RegEx?
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
remplacer
méthode:Si vous voulez garder des espaces:
La regex
/[^a-z\s]/gi
est essentiellement à dire pour correspondre à ce qui n'est pas la lettre a-z ou un espace (\s), tout cela à l'échelle mondiale (leg
drapeau) et en ignorant la casse de la chaîne (lei
drapeau).RegEx des propriétés d'une instance utilisé
g
,i
RegEx caractères spéciaux utilisés
[a-z]
,+
JavaScript chaîne de remplacer méthode syntaxe
Le non-standard drapeaux
g
&i
peut être transmis dans la remplacer ou la syntaxe de l'intégré dans la regex.exemples:
Pour correspondre à des espaces de caractères \s serait ajouté à la regex
[^a-z\s]+
.Référence JavaScript
Des Expressions régulières dans ECMAScript implémentations sont à mon humble avis mieux expliqué à la Mozilla Developer Network (anciennement, Mozilla Developer Center) dans le
RegExp
article de la De Référence Du Langage JavaScript pp.Cependant, comme l'a noté, les réponses précédentes ne prennent pas non-anglais lettres en compte, tels que les accents et les lettres accentuées. Afin de ne pas supprimer ces lettres à partir de la chaîne, vous devez vous exclure de la plage de caractères comme suit:
Cette approche devient vite fastidieux et difficile à maintenir, surtout si plusieurs langues naturelles doivent être considérés (et même dans un anglais correct il y a des mots étrangers comme "déjà vu" et "fiancé").
Donc, entre autres PCRE fonctionnalités, JSX:regexp.js vous permet d'utiliser des Expressions Régulières qui peuvent utiliser l'Unicode catégories de biens, par le biais de la Base de données des Caractères Unicode (UCD).
Vous serait alors write1
ou
de réduire la dépendance sur les majuscules/minuscules bizarreries de mises en œuvre (et être plus extensible), pour un
RegExp
qui exclut tous les non-lettre de caractères Unicode (et white-space dans le deuxième exemple).Cas de test
Assurez-vous de fournir une version de la Base de données des Caractères Unicode, parce que c'est grand, dans le flux, et donc qui ne sont pas intégrés regexp.js (JSX contient un texte verbeux et compacté version du script de l'UCD; les deux peuvent être utilisés, et ce dernier est préféré, par regexp.js). Notez que conforme ECMAScript mise en œuvre n'a pas besoin d'en charge les caractères au-delà du Plan Multilingue de Base (U+0000 à U+FFFF)donc
jsx.regexp.RegExp
actuellement ne peut pas soutenir ceux qui, même s'ils sont dans l'UCD. Consultez la documentation dans le code source pour plus de détails.1 Pangrams de Wikipedial'encyclopédie libre.