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

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

Linda Hamilton
リリース: 2024-12-14 22:38:15
オリジナル
222 人が閲覧しました

How to Efficiently Remove Accents from Strings in JavaScript?

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

文字列からアクセント付き文字を削除することは、テキスト処理やデータ分析に役立つタスクです。提供されたコードでは、accentsTidy 関数は正規表現を使用してアクセントを削除しようとします。ただし、このアプローチは、特に IE6 などの古いブラウザでは効率的または信頼性が低い可能性があります。

ES2015/ES6 ソリューション

より現代的で効率的なソリューションは、 ES2015/ES6 String.prototype.normalize() メソッド。このメソッドは、文字列を Unicode 正規化形式に変換します。結合書記素を基本文字と結合記号に分解する「NFD」形式を使用すると、発音記号の削除が容易になります。以下に例を示します。

const str = "Crème Brûlée";
str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
// "Creme Brulee"
ログイン後にコピー

この正規表現は、さまざまな発音記号を含む Unicode 範囲 U 0300 → U 036F に一致します。 「NFKD」などの他の Unicode 標準形式を使用して、uFB01 (fi) のような文字を別の方法で正規化することができます。

Unicode プロパティ エスケープの使用

ES2018 では Unicode プロパティ エスケープが導入されました。より簡潔な削除方法を提供する発音記号:

str.normalize("NFD").replace(/\p{Diacritic}/gu, "");
// "Creme Brulee"
ログイン後にコピー

このエスケープは、Unicode プロパティ「発音記号」を持つすべての文字と一致します。

代わりに: 並べ替え

目的が次の場合アクセント付き文字列を並べ替えるには、Intl.Collat​​or オブジェクトを使用できます。 Unicode の正規の順序に基づいて文字列を並べ替えることがサポートされており、発音記号は無視されます。以下に例を示します:

const c = new Intl.Collator();
["creme brulee", "crème brûlée", "crame brulai", "crome brouillé",
"creme brulay", "creme brulfé", "creme bruléa"].sort(c.compare);
// ['crame brulai', 'creme brulay', 'creme bruléa', 'creme brulee', 'crème brûlée', 'creme brulfé', 'crome brouillé']
ログイン後にコピー

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

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