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

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

DDD
DDDオリジナル
2024-12-18 02:49:14226ブラウズ

How Can I Efficiently Remove Accents from Strings in JavaScript?

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

背景と課題

文字列からアクセント付き文字 (発音記号とも呼ばれる) を削除することは、一般的なニーズです。テキスト処理で。 IE6 などの古いブラウザでは、正規表現を使用してこのような文字を操作すると問題が発生する可能性があります。

ES2015/ES6 String.prototype.normalize() を使用したアプローチ

ES2015/ES6 の出現により、Stringこのタスクには .prototype.normalize() メソッドを使用できます。文字列を Unicode 標準形式分解 (NFD) に正規化することにより、アクセント付き文字は基本文字と発音区別符号に分割されます。

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

範囲 [u0300-u036f] は、Unicode 結合発音記号ブロックと一致します。あるいは、/p{Diacritic}/gu 正規表現を Unicode プロパティ エスケープとともに使用することもできます。

並べ替えに関する考慮事項

アクセントを含む文字列の並べ替えは、単純な並べ替え方法を使用すると一貫性がなくなる可能性があります。 Intl.Collat​​or は、より正確な並べ替え機能を提供します。

const c = new Intl.Collator();
["creme brulee", "crème brûlée", ...].sort(c.compare);
// Sorts correctly based on collation rules

結論

String.normalize() または Intl.Collat​​or を使用すると、JavaScript の文字列からアクセント記号/発音記号を削除する効果的な方法が提供されます。これらのソリューションは、従来の方法よりも一貫して並べ替えの考慮事項を処理できます。

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

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