Странно работает 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, время: 00:31. |