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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-25 19:43:09973ブラウズ

How Can I Remove Accents and Diacritics from Strings in JavaScript?

JavaScript の文字列からアクセント記号と発音記号を削除する

文字列からアクセント記号付き文字を削除することは、並べ替えや検索操作などのタスクに不可欠です。 JavaScript でこれを実現するには、さまざまな方法があります。

正規表現の使用

一般的な方法の 1 つは、正規表現を使用して、アクセント付き文字をアクセント付きでない同等の文字に置き換えることです。ただし、IE6 などの古いブラウザでは、正規表現で問題が発生する可能性があります。

String.prototype.normalize() の利用

ES2015 では String.prototype.normalize() が導入されました。このメソッドにより、Unicode 文字列の正規化が可能になります。 「NFD」形式に正規化することで、結合された書記素をより単純な書記素に分解できます。これにより、特定の Unicode 文字をフィルタリングして、発音記号を簡単に削除できます。

const str = "Crème Brûlée";
str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); // "Creme Brulee"

または、Unicode プロパティ エスケープを使用することもできます。

str.normalize("NFD").replace(/\p{Diacritic}/gu, "");

アクセント記号と発音記号を含む文字列の並べ替え

並べ替えの目的で、アクセント記号と発音記号の正規化を処理するための Intl.Collat​​or オブジェクト。

const c = new Intl.Collator();
[...names].sort(c.compare); // Sorts names without considering accents or diacritics

さらに、デフォルトでアクセント記号と発音記号を考慮する String.prototype.localeCompare() を使用できます。

[...names].sort((a, b) => a.localeCompare(b));

要約すると、String.prototype.normalize() または Intl.Collat​​or を使用すると、削除するための堅牢なアプローチが提供されます。アクセントの変化の影響を受けることなく、文字列からアクセントと発音記号を抽出したり、文字列を並べ替えたりできます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。