带有回车符和换行符的 JavaScript 错误

3

我在Java中有以下字符串:

"this is text1\r\nthis is text2\r\nthis is text3"

我正在将\r\n替换为<br/>,如下所示:

String temp = "this is  text1\r\nthis is text2\r\nthis is text3"
temp = temp.replaceAll("[\r\n]+", "<br/>");

这段代码会生成以下字符串:"is text1 this is text2 this is text3"

现在,我想将它发送到JavaScript元素中,如下所示:

var desc_str = "<%=temp%>";
document.getElementById('proc_desc').value = desc_str;

Java输出的结果很好,但在传递到HTML元素后,我遇到了JavaScript错误“未终止字符串文字”,我无法找到线索,请帮忙。


不熟悉Java,但你是否尝试将其编码为JSON格式呢? - elclanrs
@Ian 这将解决脚本使用的问题,但不认为它会在 JavaScript 客户端方面有所帮助。 - Luiggi Mendoza
2
为什么你不在问题中包含生成的JavaScript代码呢?你甚至看过它吗?我认为从查看生成的JavaScript代码中,答案会非常明显。 - DaoWen
当值被打印出来时,你是否有任何杂散的引号? - Noah Freitas
1个回答

0

我找到了解决方案,问题在于将Java字符串传递给JavaScript变量时的转义/取消转义\r\n。无需用<br/>替换\r\n,只需取消转义Java字符串tmpProPrDesc = StringEscapeUtils.escapeJavaScript(tmpProPrDesc); var desc_str = "<%=tmpProPrDesc%>"; document.getElementById('proc_desc').value = desc_str; - skalluri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接