11
votes

Comment créer une regex alphanumérique pour toutes les langues?

J'ai eu ce problème aujourd'hui:

Cette regex correspond uniquement en anglais: [a-za-z0-9] .

Si j'ai besoin de soutien pour une langue dans ce monde, quelle regex devrais-je écrire?


0 commentaires

3 Réponses :


8
votes

Si vous utilisez des raccourcissements de classe de caractères et un moteur de Regex au courant de l'Unicode, vous pouvez le faire. La classe \ w correspond à "caractères Word" (lettres, chiffres et soulignements).

méfiez-vous de certaines saveurs de regex qui ne le font pas si bien: JavaScript utilise ASCII pour \ d (chiffres) et \ w , mais unicode pour \ s (blancspace). XML fait-il l'inverse.


2 commentaires

Cela dépend fortement de la syntaxe de langue / regex que vous utilisez. [[: alpha:]]] est probablement plus standard.


Et si je ne veux pas de chiffres?



2
votes

alphabet / lettre: \ p {l} code>

numéro: \ p {n} code> p>

donc pour allownum match pour toutes les langues , vous pouvez utiliser: [\ p {l} \ p {n}] + code> p>

Je cherchais un moyen de remplacer tous les caractères non alphanum pour toutes les langues avec une Espace en JS et a fini par utiliser la manière suivante pour le faire: P>

const regexForNonAlphaNum = new RegExp(/[^\p{L}\p{N}]+/ug);
someText.replace(regexForNonAlphaNum, " ");


0 commentaires

0
votes

regex supportant la plupart des langues

^ [A-Zà-ÿ \ D -] * $


0 commentaires