Странно работает 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,
Оба примера выше некросбраузерные ... Рабочий вариант
var str = '"[]"';
alert(str.replace(new RegExp("\"\\[", 'g'), "[").replace(new RegExp("\\]\"", 'g'), "]"));
|
рони, спасибо, понял.
|
вообще, в данном случае можно так:
var str = '"[]"'; alert( str.replace(/"\[/g, "[").replace(/\]"/g, "]") ); |
По-моему, в данном случае и так сойдет:D
.replace(/"/g, '') |
Vulkan,
Рабочий вариант без экранирования квадраных скобок )))
var str = '"[]"';
alert(str.replace(new RegExp("\"[[]", 'g'), "[").replace(new RegExp("]\"", 'g'), "]"));
|
Vulkan,
Рабочий вариант без экранирования двойных кавычек )))
var str = '"[]"';
alert(str.replace(new RegExp('"[[]', 'g'), "[").replace(new RegExp(']"', 'g'), "]"));
|
alert('"[]"'.replace(/"(\[)|(\])"/g, '$1$2'));
|
| Часовой пояс GMT +3, время: 22:00. |