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

Comment supprimer les accents des chaînes en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-13 16:15:10433parcourir

How to Remove Accents from Strings in JavaScript?

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

Afin de supprimer les caractères accentués d'une chaîne, il est nécessaire d'employer une méthode complète processus impliquant la normalisation des chaînes et la correspondance des classes de caractères. Voici un guide détaillé sur la façon d'y parvenir :

Solution ES2015/ES6 avec String.prototype.normalize()

const str = "Crème Brûlée";
const accentedCharsRegex = /[\u0300-\u036f]/g;

const normalizedStr = str.normalize("NFD");
const accentsRemovedStr = normalizedStr.replace(accentedCharsRegex, "");

console.log(accentsRemovedStr); // "Creme Brulee"

Ici, le normalize("NFD ") décompose les caractères combinés (par exemple, è) en leurs éléments constitutifs (e et ̀). Par la suite, l'expression régulière [u0300-u036f] cible et remplace tous les signes diacritiques dans la plage Unicode spécifiée.

Méthode d'échappement de propriété Unicode

Dans ES2020, vous pouvez tirer parti La propriété Unicode s'échappe pour une approche plus concise :

const str = "Crème Brûlée";
const accentsRemovedStr = str.normalize("NFD").replace(/\p{Diacritic}/gu, "");

console.log(accentsRemovedStr); // "Creme Brulee"

Cette méthode utilise le La propriété p{Diacritic} s'échappe pour faire correspondre tous les signes diacritiques au lieu de définir une plage Unicode spécifique.

Tri avec Intl.Collator

Si votre objectif principal est de trier les accents chaînes, vous pouvez envisager d'utiliser Intl.Collator, qui offre une prise en charge satisfaisante du tri sensible aux accents :

const strArr = ["crème brûlée", "crame brulai", "creme brulee", "crexe brulee", "crome brouillé"];

const collator = new Intl.Collator();
const sortedArr = strArr.sort(collator.compare);

console.log(sortedArr);

Par par défaut, Intl.Collator triera les chaînes en tenant compte de la casse et des accents. Pour réaliser un tri sensible aux accents, il est essentiel de définir des règles spécifiques lors de l'instanciation de Intl.Collator.

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:
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