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!