2013-07-11 52 views
2

我有以下字符串中的Java:JavaScript错误与回车和换行符

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

我与<br/>更换\r\n如下:

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错误“未终止的字符串文字”,我没有找到线索,请帮助。

+0

不熟悉Java,但你试过编码为JSON? – elclanrs

+0

@Ian可以解决scriplets使用的问题,但不要认为这对JavaScript客户端有帮助。 –

+2

为什么不在你的问题中包含生成的JavaScript代码?你甚至看过它吗?我想通过查看生成的JavaScript,答案会非常明显。 – DaoWen

回答

0

这听起来像你没有得到你的字符串的所有线突破。

您可能会发现这篇文章有帮助: How do I replace all line breaks in a string with <br /> tags?

+0

我找到了解决方案,问题是\ r \ n的escape/unescape,同时将java字符串传递给javascript变量。没有必要用
替换\ r \ n,但只需要使用Java字符串tmpProPrDesc = StringEscapeUtils.escapeJavaScript(tmpProPrDesc); var desc_str =“<%= tmpProPrDesc%>”; document.getElementById('proc_desc')。value = desc_str; – skalluri