it-swarm.com.de

Javascript ersetzen einfaches Anführungszeichen durch doppeltes Anführungszeichen

Der folgende Code ersetzt nur ein einziges Anführungszeichen. Ich muss alle einfachen Anführungszeichen durch doppelte Anführungszeichen ersetzen. Wie mache ich es?

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

Edit:\entfernt, da es hier nutzlos ist.

69
RafH

Benötige Regex dafür:

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

http://jsfiddle.net/9b3K3/

7
RaphaelDDL

Sie können ein globales Qualifikationsmerkmal (ein abschließendes g) für einen regulären Ausdruck verwenden:

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

Ohne das globale Qualifikationsmerkmal kann der reguläre Ausdruck (/'/) entspricht nur der ersten Instanz von '.

4
Ted Hopp

Das sieht verdächtig nach schlechtem JSON aus, daher schlage ich vor, tatsächliche Array- und Objektliterale zu verwenden und dann die richtige Codierung vorzunehmen:

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

Sie können ein RegExp mit dem globalen Flag g verwenden und alle Anführungszeichen werden ersetzt:

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

Fügen Sie den Modifikator g hinzu: var b = a.replace(/'/g, '"');

0
sebnukem