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
737 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!

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