Javascript заменяет диакритические символы в iso-8859-1

Я пытаюсь заменить некоторые диакритические знаки (акценты) в простом javascript. но я понятия не имею, что делать. Моя проблема в том, что мы используем кодировку iso-8859-1. Если бы мы использовали utf-8, было бы проще. Я пытаюсь сделать что-то вроде этого скрипта (который работает в кодировке UTF-8).

Может ли кто-нибудь помочь мне в этом? Если бы у меня был только синтаксис для замены "é" на "e", все остальное было бы прекрасно. Я пробовал кое-что с \xE9, но, не очень хорошо разбираясь в регулярных выражениях, не смог заставить его работать.


person Patrice Cote    schedule 10.10.2012    source источник
comment
О чем именно вы спрашиваете? Escape-последовательности Unicode должны работать. Или код из другого вопроса не работает?   -  person Bergi    schedule 10.10.2012
comment
Как я уже писал, мы используем кодировку iso-8859-1 и она не работает. Даже простой .replace(é, e) не работает.   -  person Patrice Cote    schedule 16.10.2012
comment
Затем используйте .replace("\u00E9", "e"), если у вас другая кодировка. Или еще лучше перейти на UTF-8, который является квазистандартным.   -  person Bergi    schedule 16.10.2012
comment
Я был бы более чем счастлив перейти на UTF-8, но, к сожалению, у меня нет на это времени. Мой контракт здесь только на несколько недель.   -  person Patrice Cote    schedule 16.10.2012


Ответы (1)


Наконец я нашел этот синтаксис регулярного выражения:

        Recherche = Recherche.replace(/À|Á|Â|Ã|Ä|Å/g, "A")
                             .replace(/à|á|â|ã|ä|å/g, "a")
                             .replace(/Ò|Ó|Ô|Õ|Õ|Ö|Ø/g, "O")
                             .replace(/ò|ó|ô|õ|ö|ø/g, "o")
                             .replace(/È|É|Ê|Ë/g, "E")
                             .replace(/è|é|ê|ë/g, "e")
                             .replace(/Ç|ç/g, "c")
                             .replace(/Ì|Í|Î|Ï/g, "I")
                             .replace(/ì|í|î|ï/g, "i")
                             .replace(/Ù|Ú|Û|Ü/g, "U")
                             .replace(/ù|ú|û|ü/g, "u");
person Patrice Cote    schedule 25.10.2012
comment
Вы можете заменить Recherche = Recherche.replace(...); Recherche = Recherche.replace(...) на Recherche = Recherche.replace(...).replace(...), сократить код и избежать большого количества циклов (нет необходимости копировать значение обратно в Recherche и каждый раз читать его снова). - person DrakaSAN; 11.09.2014