Jquery Double Quote被"" e"取代

时间:2017-03-24 11:00:10

标签: javascript jquery

<script>
var text = "{time: 9.5, text: &quot;this&quot;},                                              
{time: 3, text: &quot;is&quot;},
{time: 5,text: &quot;so&quot;},
{time: 7, text: &quot;cool&quot;}";
abc = text.replace(/&quot;/g, '\"');
</script>
  

错误=未捕获的SyntaxError:无效或意外的令牌

所需的输出

      {time: 9.5, text: "this"},
      {time: 3,  text: "is"},
      {time: 5,text: "so"},
      {time: 7,  text: "cool"}

7 个答案:

答案 0 :(得分:1)

JavaScript不允许字符串在多行中分隔,您需要将字符串全部放在一行中,如下所示,或者使用{{连接多个单独的字符串(在各行上) 1}}

+

答案 1 :(得分:1)

将整个字符串放在一行中:

var text = "{time: 9.5, text: &quot;this&quot;},{time: 3, text: &quot;is&quot;},{time: 5,text: &quot;so&quot;},{time: 7, text: &quot;cool&quot;}";

并查看结果。

Results

答案 2 :(得分:0)

您需要创建一个对象数组。

    var text = [
      {time: 9.5, text: "this"},                                              
      {time: 3, text: "is"},
      {time: 5,text: "so"},
      {time: 7, text: "cool"}
   ];

以示例:

text[0].time; 将返回9.5

答案 3 :(得分:0)

您的问题是您的字符串中有新行。 JavaScript不支持字符串中间的新行。

答案 4 :(得分:0)

您可以使用此技术轻松创建多变量行。

var json = function(){/*
[
    {   "time" : "9.5", "text" : "this"},
    {   "time" : "3",  "text" : "is"},
    {   "time" : "5", "text" : "so"},
    {   "time" : "7",  "text" : "cool"}
]

*/}.toString().slice(14,-3);

json = JSON.parse(json)

console.log(json);

答案 5 :(得分:0)

您的代码有两个问题:

  1. 正如其他人所指出的,字符串必须在一行中。

  2. 您的字符串不是有效的js对象

  3. &#13;
    &#13;
    var text = "{time: 9.5, text: &quot;this&quot;}, {time: 3, text: &quot;is&quot;}, {time: 5,text: &quot;so&quot;}, {time: 7, text: &quot;cool&quot;}";
    var object =  JSON.parse("[" + text.replace(/&quot;/g, '\"').replace(/time/g, "\"time\"").replace(/text/g, "\"text\"") + "]");
    console.log(object);
    &#13;
    &#13;
    &#13;

答案 6 :(得分:0)

你有一个文本变量,这个变量的内容定义为text =“text-content”。在文本内容中,您使用双引号,然后您将看到您看到的错误。用这一行中的单引号替换这些双引号:

abc = text.replace(/&quot;/g, "'");

此外,您需要删除额外的间距(我的意思是文本变量中的新行)才能实现这一点。

var text = "{time: 9.5, text: &quot;this&quot;},{time: 3, text: &quot;is&quot;},{time: 5,text: &quot;so&quot;},{time: 7, text: &quot;cool&quot;}";

abc = text.replace(/&quot;/g, "'");
console.log(abc)