The following code replaces only one single quote:
var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace("'", "\"");
console.log(b);
The following code replaces only one single quote:
var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace("'", "\"");
console.log(b);
var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace(/'/g, '"');
console.log(b);
Edit: Removed \ as there are useless here.
Need to use regex for this:
var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace(/\'/g, "\"");
You can use a global qualifier (a trailing g
) on a regular expression:
var b = a.replace(/'/g, '"');
Without the global qualifier, the regex (/'/
) only matches the first instance of '
.
replaceAll(search, replaceWith)
replaces ALL occurrences of search
with replaceWith
.
Then, make sure you have a string by wrapping one type of qoutes by different type:
"a 'b' c".replaceAll("'", '"')
// result: "a "b" c"
"a 'b' c".replaceAll(`'`, `"`)
// result: "a "b" c"
replaceAll (MDN): replaceAll(search, replaceWith)
It's actually the same as using replace()
with a global regex(*), merely replaceAll()
is a bit more readable in my view.
(*) Meaning it'll match all occurrences.
Example 1 - search with a string
const p = 'Please replace all 2020 occurrences with 2021. 2020. 2020.'
console.log(p.replaceAll('2020', '2021'));
// Result: "Please replace all 2021 occurrences with 2021. 2021. 2021."
Example 2 - search with regex
const p = 'Please replace all 2020 occurrences with 2021. 2020. 2020.'
const regex = /2020/gi
console.log(p.replaceAll(regex, '2021'));
// Result: "Please replace all 2021 occurrences with 2021. 2021. 2021."
Important(!) if you choose regex:
when using a
regexp
you have to set the global ("g") flag; otherwise, it will throw a TypeError: "replaceAll must be called with a global RegExp".
You can also use a function as replaceWith
In this case, the function will be invoked after the match has been performed. The function's result (return value) will be used as the replacement string.
This looks suspiciously like bad JSON, so I suggest using actual array and object literals, then encoding the proper way:
var a = [{'column1':'value0','column2':'value1','column3':'value2'}];
var b = JSON.stringify(a);
You can use a RegExp with the global flag g
and all quotes will replaced:
var b = a.replace(/'/g, '"');