Maison > interface Web > js tutoriel > Comment supprimer efficacement les accents des chaînes en JavaScript ?

Comment supprimer efficacement les accents des chaînes en JavaScript ?

Linda Hamilton
Libérer: 2024-12-14 22:38:15
original
222 Les gens l'ont consulté

How to Efficiently Remove Accents from Strings in JavaScript?

Supprimer les accents/diacritiques dans une chaîne en JavaScript

La suppression des caractères accentués des chaînes peut être une tâche utile pour le traitement de texte et l'analyse de données. Dans le code fourni, la fonction accentsTidy tente de supprimer les accents à l'aide d'expressions régulières. Cependant, cette approche peut ne pas être efficace ou fiable, en particulier dans les navigateurs plus anciens comme IE6.

Solution ES2015/ES6

Une solution plus moderne et efficace consiste à utiliser le Méthode ES2015/ES6 String.prototype.normalize(). Cette méthode convertit une chaîne en une forme normalisée Unicode. En utilisant la forme "NFD", qui décompose les graphèmes combinés en caractères de base et en combinant les signes, la suppression des signes diacritiques devient plus facile. Voici un exemple :

const str = "Crème Brûlée";
str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
// "Creme Brulee"
Copier après la connexion

L'expression régulière correspond à la plage Unicode U 0300 → U 036F, qui comprend divers signes diacritiques. D'autres formes normales Unicode telles que "NFKD" peuvent être utilisées pour normaliser différemment des caractères comme uFB01 (fi).

Utilisation des échappements de propriétés Unicode

ES2018 a introduit les échappements de propriétés Unicode, fournissant un moyen plus concis de supprimer les signes diacritiques :

str.normalize("NFD").replace(/\p{Diacritic}/gu, "");
// "Creme Brulee"
Copier après la connexion

Cet échappement fait correspondre tous les caractères avec le Propriété Unicode "Diacritic".

Alternative : Tri

Si l'objectif est de trier des chaînes avec des accents, l'objet Intl.Collator peut être utilisé. Il prend en charge le tri des chaînes en fonction de leur ordre canonique Unicode, qui ignore les signes diacritiques. Voici un exemple :

const c = new Intl.Collator();
["creme brulee", "crème brûlée", "crame brulai", "crome brouillé",
"creme brulay", "creme brulfé", "creme bruléa"].sort(c.compare);
// ['crame brulai', 'creme brulay', 'creme bruléa', 'creme brulee', 'crème brûlée', 'creme brulfé', 'crome brouillé']
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal