Angularは "ジンバブエ" の後に "オーランド諸島" を並べ替えます。グローバルな方法でこれを修正したいと思います。カスタムの並べ替え関数を作成してすべてのorderBy
フィルターで指定するのではなく、デフォルトの並べ替え関数に何らかの方法でグローバルにパッチを適用したいと考えています。これは可能ですか?
最初に次の関数で両方の文字列を正規化することにより、問題が修正されます。
function norm(str) {
str = str.toLowerCase();
str = str.replace(/\\s/g, "");
str = str.replace(/[àáâãäå]/g, "a");
str = str.replace(/æ/g, "ae");
str = str.replace(/ç/g, "c");
str = str.replace(/[èéêë]/g, "e");
str = str.replace(/[ìíîï]/g, "i");
str = str.replace(/ñ/g, "n");
str = str.replace(/[òóôõö]/g, "o");
str = str.replace(/œ/g, "oe");
str = str.replace(/[ùúûü]/g, "u");
str = str.replace(/[ýÿ]/g, "y");
str = str.replace(/\\W/g, "");
return str;
}
Angular で一度これを行う方法があれば、二度と心配する必要はありません。