Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.04.2011, 13:30
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Странно работает replace
Приветствую, не могу понять причину происходящего:
var str = '"[]"';
alert(str.replace(new RegExp("\"[", 'g'), "[").replace(new RegExp("]\"", 'g'), "]"));
//по сути должно выдаваться '[]', а выдаётся '"[]'

Объясните пожалуйста в чём причина такого результата
p.s. тема закрыта, сам разобрался:
var str = '"[]"';
alert(str.replace(new RegExp("\"[[", 'g'), "[").replace(new RegExp("]\"", 'g'), "]"));

Последний раз редактировалось Vulkan, 11.04.2011 в 14:17.
Ответить с цитированием
  #2 (permalink)  
Старый 11.04.2011, 13:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Vulkan,
Оба примера выше некросбраузерные ...
Рабочий вариант
var str = '"[]"';
alert(str.replace(new RegExp("\"\\[", 'g'), "[").replace(new RegExp("\\]\"", 'g'), "]"));
Ответить с цитированием
  #3 (permalink)  
Старый 11.04.2011, 14:03
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

рони, спасибо, понял.
Ответить с цитированием
  #4 (permalink)  
Старый 12.04.2011, 01:34
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

вообще, в данном случае можно так:
var str = '"[]"';
alert(
  str.replace(/"\[/g, "[").replace(/\]"/g, "]")
);
Ответить с цитированием
  #5 (permalink)  
Старый 12.04.2011, 01:51
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

По-моему, в данном случае и так сойдет
.replace(/"/g, '')
Ответить с цитированием
  #6 (permalink)  
Старый 12.04.2011, 07:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Vulkan,
Рабочий вариант без экранирования квадраных скобок )))
var str = '"[]"';
alert(str.replace(new RegExp("\"[[]", 'g'), "[").replace(new RegExp("]\"", 'g'), "]"));
Ответить с цитированием
  #7 (permalink)  
Старый 12.04.2011, 08:23
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Vulkan,
Рабочий вариант без экранирования двойных кавычек )))
var str = '"[]"';
alert(str.replace(new RegExp('"[[]', 'g'), "[").replace(new RegExp(']"', 'g'), "]"));
Ответить с цитированием
  #8 (permalink)  
Старый 12.04.2011, 08:43
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

alert('"[]"'.replace(/"(\[)|(\])"/g, '$1$2'));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странно работает document.body.innerHTML.replace ? __romka_ Общие вопросы Javascript 2 04.04.2011 09:49
Странно работает регулярка в JS _axl Общие вопросы Javascript 12 11.03.2011 23:39
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32