Javascript заменяет одиночную цитату с двойной цитатой

Следующий код заменяет только одну одиночную кавычку. Мне нужно заменить всю одинарную цитату двойными кавычками. Как это сделать?

var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace("'", "\"");

Ответы

Ответ 1

var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace(/'/g, '"');
console.log(b);

Ответ 2

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

var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace(/\'/g, "\"");

http://jsfiddle.net/9b3K3/

Ответ 3

Вы можете использовать глобальный квалификатор (конечный g) в регулярном выражении:

var b = a.replace(/'/g, '"');

Без глобального классификатора регулярное выражение (/'/) соответствует только первому экземпляру '.

Ответ 4

Это выглядит подозрительно, как плохой JSON, поэтому я предлагаю использовать фактические массивы и литералы объектов, а затем кодировать правильный путь:

var a = [{'column1':'value0','column2':'value1','column3':'value2'}];
var b = JSON.stringify(a);

Ответ 5

Добавьте модификатор g: var b = a.replace(/'/g, '"');

Ответ 6

Вы можете использовать RegExp с глобальным флагом g, и все кавычки будут заменены:

var b = a.replace(/'/g, '"');