<script>
var text = "{time: 9.5, text: "this"},
{time: 3, text: "is"},
{time: 5,text: "so"},
{time: 7, text: "cool"}";
abc = text.replace(/"/g, '\"');
</script>
错误=未捕获的SyntaxError:无效或意外的令牌
所需的输出
{time: 9.5, text: "this"},
{time: 3, text: "is"},
{time: 5,text: "so"},
{time: 7, text: "cool"}
答案 0 :(得分:1)
JavaScript不允许字符串在多行中分隔,您需要将字符串全部放在一行中,如下所示,或者使用{{连接多个单独的字符串(在各行上) 1}}
+
答案 1 :(得分:1)
将整个字符串放在一行中:
var text = "{time: 9.5, text: "this"},{time: 3, text: "is"},{time: 5,text: "so"},{time: 7, text: "cool"}";
并查看结果。
答案 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)
您的代码有两个问题:
正如其他人所指出的,字符串必须在一行中。
您的字符串不是有效的js对象
var text = "{time: 9.5, text: "this"}, {time: 3, text: "is"}, {time: 5,text: "so"}, {time: 7, text: "cool"}";
var object = JSON.parse("[" + text.replace(/"/g, '\"').replace(/time/g, "\"time\"").replace(/text/g, "\"text\"") + "]");
console.log(object);
&#13;
答案 6 :(得分:0)
你有一个文本变量,这个变量的内容定义为text =“text-content”。在文本内容中,您使用双引号,然后您将看到您看到的错误。用这一行中的单引号替换这些双引号:
abc = text.replace(/"/g, "'");
此外,您需要删除额外的间距(我的意思是文本变量中的新行)才能实现这一点。
var text = "{time: 9.5, text: "this"},{time: 3, text: "is"},{time: 5,text: "so"},{time: 7, text: "cool"}";
abc = text.replace(/"/g, "'");
console.log(abc)