Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   str.replace глючит в IE :((( (https://javascript.ru/forum/misc/14225-str-replace-glyuchit-v-ie.html)

shureg 06.01.2011 20:17

str.replace глючит в IE :(((
 
Доброго времени суток, стулкнулся со следующей проблемой!

имеется фукуция:

function cut_tags(str)
{
    str = str.replace('[b]','<b>');
    str = str.replace('[\b]','<\b>');
    str = str.replace('[i]','<i>');
    str = str.replace('[\i]','<\i>');
    str = str.replace('[u]','<u>');
    str = str.replace('[\u]','<\u>');
    str = str.replace('[strong]','<strong>');
    str = str.replace('[\strong]','<\strong>');
    str = str.replace('[s]','<s>');
    str = str.replace('[\s]','<\s>');
    str = str.replace('[br]','<br>');
    str = str.replace('<','&lt;');
    str = str.replace('>','&gt;');

    return str;
}

как поняли функция для работы с BB кодами, работает во всех Браузерах отлично, исключение Состовляет IE. !!!

причем ИЕ видит ошибку там, где её просто нету!!!

цитирую:

Сведения об ошибке на веб-странице

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; MRA 5.7 (build 03797); SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
штамп времени: Thu, 6 Jan 2011 17:24:26 UTC

Сообщение: Предполагается шестнадцатеричное число
Строка: 218
Символ: 27
Код: 0
URI-код: http://****/main.js


на данной строчке распологается: str = str.replace('[\u]','<\u>'); и str = str.replace('[u]','<u>');
убрав её, все начинает работать! но как так????? ведь выполняется еще кучу пободных действия разве, что с разными символами, почему именно u ????? что в ней нетак????:help: :help:

monolithed 06.01.2011 20:43

alert('[\\u]'.replace('[\\u]', '<\\u>'));

Aetae 06.01.2011 20:52

Цитата:

Сообщение от monolithed (Сообщение 86530)
alert('[\\u]'.replace('[\\u]', '<\\u>'));

То же относится и ко всему остальному. "\" надо экранировать.

Ошибка же появляется потому что после \u ожидается шестнадцатиричный код unicode символа.
alert('\u2665')


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