ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の文字列からアクセントを削除するにはどうすればよいですか?

JavaScript の文字列からアクセントを削除するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-13 16:15:10
オリジナル
495 人が閲覧しました

How to Remove Accents from Strings in JavaScript?

JavaScript で文字列内のアクセント記号/発音記号を削除する

文字列からアクセント記号付き文字を削除するには、包括的なメソッドを使用する必要があります。文字列の正規化と文字クラスのマッチングを含むプロセス。これを実現する方法に関する詳細なガイドは次のとおりです。

String.prototype.normalize() を使用した ES2015/ES6 ソリューション

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"
ログイン後にコピー

ここでは、normalize("NFD ") メソッドは、結合された文字 (例: è) を構成部分 (e と ̀) に分解します。続いて、正規表現 [u0300-u036f] は、指定された Unicode 範囲内のすべての発音区別記号を対象にして置換します。

Unicode プロパティ エスケープ メソッド

ES2020 内では、より簡潔にするための Unicode プロパティのエスケープアプローチ:

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

console.log(accentsRemovedStr); // "Creme Brulee"
ログイン後にコピー

このメソッドは、特定の Unicode 範囲を定義する代わりに、p{Diacritic} プロパティのエスケープを利用して、すべての発音区別記号と一致させます。

Intl.Collat​​or による並べ替え

主な目的がアクセント付き文字列を並べ替えることである場合は、次の使用を検討できます。 Intl.Collat​​or は、アクセントを区別した並べ替えの十分なサポートを提供します。

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);
ログイン後にコピー

デフォルトでは、Intl.Collat​​or は文字列を大文字と小文字を区別し、アクセントを区別せずに並べ替えます。アクセントを区別した並べ替えを実現するには、Intl.Collat​​or のインスタンス化中に特定のルールを定義することが不可欠です。

以上がJavaScript の文字列からアクセントを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート