javascript用双引号替换单引号

时间:2013-05-08 21:09:46

标签: javascript

以下代码仅替换一个单引号。我需要用双引号替换所有单引号。我该怎么做?

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

7 个答案:

答案 0 :(得分:60)

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

编辑:删除\,因为这里没用。

答案 1 :(得分:6)

需要使用正则表达式:

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

http://jsfiddle.net/9b3K3/

答案 2 :(得分:4)

您可以在正则表达式上使用全局限定符(尾随g):

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

如果没有全局限定符,则正则表达式(/'/)仅匹配'的第一个实例。

答案 3 :(得分:1)

这看起来很像JSON,所以我建议使用实际的数组和对象文字,然后以正确的方式编码:

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

答案 4 :(得分:1)

replaceAll(search, replaceWith) 将所有出现的 search 替换为 replaceWith

然后,通过用不同类型包装一种类型的 qoutes 来确保你有一个字符串:

 "a 'b' c".replaceAll("'", '"')
 // result: "a "b" c"
    
 "a 'b' c".replaceAll(`'`, `"`)
 // result: "a "b" c"

更多关于 replaceAll

replaceAll (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."

重要()如果您选择正则表达式:

<块引用>

使用 regexp 时,您必须设置全局 ("g") 标志; 否则,它会抛出一个类型错误:“replaceAll 必须用 一个全局 RegExp”。


您也可以将函数用作 replaceWith

<块引用>

在这种情况下,该函数将在匹配完成后调用 执行。函数的结果(返回值)将用作 替换字符串。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

您可以使用带有全局标记g的RegExp并替换所有引号:

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