简体   繁体   中英

How do I replace single quotes with double quotes in JavaScript?

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, "\"");

http://jsfiddle.net/9b3K3/

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"

More about replaceAll

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);

添加g修饰符: var b = a.replace(/'/g, '"');

您可以使用带有全局标志g的 RegExp 并且所有引号都将被替换:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM