Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Проблемы с регулярным выражением в firefox (https://javascript.ru/forum/css-html-firefox-mizilla/18498-problemy-s-regulyarnym-vyrazheniem-v-firefox.html)

abc_ua 03.07.2011 18:43

Проблемы с регулярным выражением в firefox
 
Суть проблемы: парсится атрибут onclick, при нахождении совпадения методом exec ТОЛЬКО в фф выдается "\u041C\u0438\u043B\u043B\u0435\u043D\u0438\u0443\ u043C-2 \u0448\u043A\u0430\u0444 \u043A\u0443\u043F\u0435" вместо кирилицы, кодировка страницы utf-8

trikadin 04.07.2011 13:10

Ну, собственно, это буквы, представленные кодами UTF.

abc_ua 04.07.2011 17:08

а как преобразовать их в кирилицу?

melky 04.07.2011 17:19

а ты в тэге <meta> поставь кодировку utf-8

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

abc_ua 04.07.2011 20:48

melky,
она и так там стоит

Mad LIR 06.07.2011 14:28

А как парсишь?

trikadin 06.07.2011 15:33

a= "\\u0065\\u0117"; // это ваша строка (ну, примерно). К ней применяем следующее:

myRe= /([0-9]{4,4})/g; 
strArray=[];
while((res=myRe.exec(a)) != null)
 strArray.push(res[0]);
alert(String.fromCharCode.apply(this, strArray));


P. S. Конечно, не очень крутой способ, но другой не придумался...

melky 06.07.2011 16:28

Цитата:

Сообщение от trikadin (Сообщение 112044)
/([0-9]{4,4})/g;

предлагаю чутка покороче

// ваша стрингa
var a = "\\u0065\\u0117",

// массив совпадений
b= a.match(/(\d{4})/g),

// снизу уже строка из юникодных символов
/* 
WARNING!!! 
          контекст стоит нуль (ЩИТО???). так короче.
          но мне кажется, надо писать window :)
*/
c = String.fromCharCode.apply(0, b );

alert(c)

trikadin 06.07.2011 16:35

Ну да... С регэкспами у меня не супер.

Цитата:

Сообщение от melky
но мне кажется, надо писать window

Какая разница. Пусть что хочет, то и пишет))

P.S. Кстати, зачем вы сделали код запускаемым?

melky 06.07.2011 16:38

чтобы проверить результат, не отходя от кассы :)

но не запускается :(

как и примерочная.. там 404


Часовой пояс GMT +3, время: 16:38.