Javascript SyntaxError:带有JSON数组的未终止字符串文字
所以我Javascript SyntaxError:带有JSON数组的未终止字符串文字,javascript,json,Javascript,Json,所以我 var newfavz = 'Array ( [0] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "] [1] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "] [2] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "] ) '; 在我的console.log上,但不知何故出现了一个语法错误:unterminated string literal。我环顾四周,尝试了一
var newfavz = 'Array (
[0] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]
[1] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]
[2] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]
)
';
在我的console.log上,但不知何故出现了一个语法错误:unterminated string literal。我环顾四周,尝试了一些方法,比如str_replace“/”和“/”或类似正则表达式的.replace(/^/+//g,”);因为JavaScript似乎不允许将字符串分成多行或类似的内容
这一切都是从这样的SQL查询开始的
$favurl = [];
$favquery = "SELECT * FROM userfavs WHERE users = '$username'";
$favresult = mysqli_query($conn, $favquery);
while($row = mysqli_fetch_assoc($favresult)) {
array_push($favurl, $row['fav_id']);
后来,我做到了
var newfavz = <?php print_r ($favurl); ?>
var newfavz=
这导致了上述情况
有什么方法可以解决语法错误吗?谢谢 原因js中不允许使用多行字符串:
"A
B"
是一个语法错误。您可以删除所有换行符并将其替换为\n,或者使用模板文字:
`A
B`
在代码中:
var newfavz =` <?php print_r ($favurl); ?>`;
var newfavz=`;
关于这个错误,我想说的太多了。但是字符串仍然不可用,需要对其进行分析。查看JSON或编写自己的小解析器。或者使用ES6:
或者使用反斜杠:
var newfavz = 'Array (\n\
\n\
\n\
[0] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\n\
[1] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\n\
[2] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\n\
\n\
)\
';
或连接:
var newfavz = 'Array (\n' +
'\n' +
'\n' +
'[0] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\n' +
'[1] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\n' +
'[2] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\n' +
'\n' +
')\n';
\n
用于表示一个换行符
您必须在每行末尾加一个反斜杠才能有一个多行字符串:
var newfavz = 'Array (\
[0] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\
[1] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\
[2] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\
)\
';
echo
json\u encode的结果而不是使用print\r
。打印的字符串在JavaScript环境中是无用的,检查啊抱歉我在调试时使用了print_r:)要添加到这个,在服务器上,在传递给JS之前,应该使用json_encode()方法将数组编码为json对象。嘿,我忘了将此添加到问题中,但在将数据插入SQL数据库之前,我确实使用了JSON_编码方法。到目前为止,我发现消除这个未终止字符串文字错误的唯一方法是执行另一个JSON_编码,这在我看来相当愚蠢。谢谢你!我使用了``字符,效果非常好!
var newfavz = 'Array (\
[0] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\
[1] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\
[2] => [" 6 "," 1 "," 2 "," 5 "," 3 "," 4 "]\
)\
';