Maison > interface Web > js tutoriel > Comment supprimer les accents des chaînes en JavaScript, y compris la compatibilité IE6 ?

Comment supprimer les accents des chaînes en JavaScript, y compris la compatibilité IE6 ?

DDD
Libérer: 2024-12-21 12:16:19
original
774 Les gens l'ont consulté

How to Remove Accents from Strings in JavaScript, Including IE6 Compatibility?

Suppression des accents/diacritiques des chaînes en JavaScript

Cet article examine les techniques de suppression des accents ou des signes diacritiques des chaînes en JavaScript, en abordant les problèmes suivants : défi rencontré dans IE6 avec les expressions régulières.

Utilisation d'ES2015/ES6 String.prototype.normalize()

ES2015/ES6 introduit la méthode String.prototype.normalize(), qui permet la suppression des signes diacritiques. Par exemple :

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

Notez que « NFD » est utilisé pour décomposer les graphèmes combinés en graphèmes simples, facilitant ainsi la suppression des signes diacritiques.

Utilisation des échappements de propriétés Unicode

Une autre approche consiste à utiliser la propriété Unicode échappe :

const str = "Crème Brûlée";
const removed = str.normalize("NFD").replace(/\p{Diacritic}/gu, "");
console.log(removed); // Output: "Creme Brulee"
Copier après la connexion

À des fins de tri

Si l'objectif est simplement de trier, Intl.Collator peut être utilisé :

const c = new Intl.Collator();
const arr = ["creme brulee", "crème brûlée", ...];
arr.sort(c.compare);
Copier après la connexion

Considérations sur IE6

Avec IE6, les expressions régulières peuvent être problématiques. Pour résoudre ce problème, une approche simple consisterait à remplacer manuellement des caractères accentués spécifiques par leurs caractères de base équivalents. Par exemple :

const accentsTidy = (str) => {
  return str
    .toLowerCase()
    .replace(/\s/g, "")
    .replace(/[àáâãäå]/g, "a")
    .replace(/æ/g, "ae")
    // ... and so on
    .replace(/\W/g, "");
};
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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal