以下代码仅替换一个单引号:
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("'", "\"");
console.log(b);
var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace(/'/g, '"');
console.log(b);
编辑:删除 \ 因为这里没有用。
为此需要使用正则表达式:
var a = "[{'column1':'value0','column2':'value1','column3':'value2'}]";
var b = a.replace(/\'/g, "\"");
g
您可以在正则表达式上使用全局限定符(尾随):
var b = a.replace(/'/g, '"');
如果没有全局限定符,正则表达式 ( /'/
) 仅匹配'
.
replaceAll(search, replaceWith)
用 替换所有出现search
的replaceWith
。
然后,通过用不同类型包装一种类型的 qoutes 来确保你有一个字符串:
"a 'b' c".replaceAll("'", '"')
// result: "a "b" c"
"a 'b' c".replaceAll(`'`, `"`)
// result: "a "b" c"
全部替换(MDN):replaceAll(search, replaceWith)
它实际上与使用replace()
全局正则表达式(*)相同,只是replaceAll()
在我看来更具可读性。
(*) 表示它将匹配所有出现的事件。
示例 1 - 使用字符串搜索
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."
示例 2 - 使用正则表达式搜索
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."
重要(!)如果您选择正则表达式:
使用 a 时,
regexp
您必须设置全局 ("g") 标志;否则,它将抛出 TypeError:“replaceAll 必须使用全局 RegExp 调用”。
您还可以将函数用作replaceWith
在这种情况下,将在执行匹配后调用该函数。函数的结果(返回值)将用作替换字符串。
这看起来很像错误的 JSON,所以我建议使用实际的数组和对象文字,然后以正确的方式编码:
var a = [{'column1':'value0','column2':'value1','column3':'value2'}];
var b = JSON.stringify(a);
添加g
修饰符:
var b = a.replace(/'/g, '"');
您可以将 RegExp 与全局标志一起使用g
,所有引号都将被替换:
var b = a.replace(/'/g, '"');