解决MySQL数据赋给JS变量报unterminated string literal错误

作者:沧海

时间:2026-10-25

浏览:186

本文分析将MySQL文本数据直接赋值给JavaScript变量时,因包含\r\n换行符导致火狐浏览器报unterminated string literal错误的原理。通过服务器端使用str_replace移除换行符,可有效解决该字符串未终止问题,确保前端脚本正常执行。

文章目录

MySQL数据赋给JS变量报错原因分析

当从MySQL数据库中读取包含文本字段的数据,并将其直接赋值给JavaScript变量时,可能会遇到字符串解析问题。



具体实现代码如下所示:

<script type="text/javascript">var strs="苏润葡萄种植园依托沪宁高速和扬溧高速两大交通走廊,紧邻镇荣公路上党镇薛村段,离镇江市仅20公里,交通便利苏润葡萄种植园引进新品种、
新工艺、新技术和现代经营管理体制,采用大棚种植。目前主要品种有五个:夏黑、美人指、贵公子、黄蜜、金手指。苏润葡萄种植园还 ...";
document.write(strs);</script>


服务器端解决字符串未终止错误

在火狐浏览器中运行上述代码时,始终会抛出unterminated string literal(字符串未终止)错误。将这段文本复制到TXT文件中查看,发现出现了几个黑方块。这是因为数据中包含了MySQL的换行标记\r\n,而在TXT文件中由于双字节编码无法正确显示这些控制字符,因此显示为两个黑方块。



解决方法:在服务器端返回该数据之前,执行字符串替换操作,将换行符\r\n移除。

$value=str_replace("\r\n","",$value)




实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章