2015-08-24 3 views
0

У меня есть следующая строка:Заменить вхождение в строку с результатом

{"key1":"value1","key2":"value2","key3":"value3"} 

Я хочу, чтобы преобразовать его в этом:

{key1:"value1",key2:"value2",key3:"value3"} 

Так что я сделал что-то вроде этого:

var output = str.replace(/"(.*?)":/, "$1:"); 

Таким образом, я получаю:

{key1:"value1","key2":"value2","key3":"value3"} 

Таким образом, он работает для первого ключа, но не для остальных. Как я могу использовать метод replace для замены всех вхождений, как я показал здесь?

+3

Почему именно вы хотите, чтобы лишить цитаты из разных ключей? –

+0

- это конечный результат, который также должен быть строкой? Или вы хотите преобразовать этот JSON в объект? Если вы хотите последний, просто подайте эту строку в 'JSON.parse()' – LukeP

ответ

6

Используйте глобальный флаг с регулярным выражением

str.replace(/"(.*?)":/g, "$1:"); 
2

Вы должны изменить регулярное выражение:

var output = str.replace(/"(.*?)":/g, "$1:"); 
Смежные вопросы