仅在字符串的极值处用单引号替换双引号

时间:2013-01-25 11:15:25

标签: jquery

我有一个字符串

var myString = "[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"}]";

我希望输出为

myString  = '[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"}]';

2 个答案:

答案 0 :(得分:1)

如果使用双引号创建字符串,则不能在其中包含未转义的双引号。

你不能写

var myString = "A "B" C";

这将是语法错误。然而,

var myString = "A \"B\" C";

与以下内容完全相同:

var myString = 'A "B" C';

myString的结果值完全相同。它不像第一个示例将在最终字符串中包含任何转义标记。转义仅用于帮助创建字符串,在两种情况下都是A "B" C;在记录时经常用双引号括起来,表示该类型是一个字符串。

因此,如果您运行console.log(myString);,它会说"A "B" C",但myString只是A "B" C。这只是开发人员工具如何表示字符串的结果。字符串本身没有任何内容表明它是用双引号创建的。开发人员工具同样可以将值记录为特殊颜色,但用双引号括起来恰好是表示字符串的传统方式。

答案 1 :(得分:0)

您可以使用.slice()执行此操作:

var newString =  "'" + myString.slice(1, -1) + "'";

或者使用正则表达式:

var newString = myString.replace(/^"|"$/g, "'");