我的项目有要求。 我在javascript中生成一个注释字符串。
Coping Option: Delete all codes and replace
Source Proj Num: R21AR058864-02
Source PI Last Name: SZALAI
Appl ID: 7924675; File Year: 7924675
我将它发送到服务器,我将其作为字符串存储在db中,然后我将其检索回来并在textarea中显示它。
我在javascript中生成它:
codingHistoryComment += 'Source Proj Num: <%=mDefault.getFullProjectNumber()%>'+'\n';
codingHistoryComment += 'Source PI Last Name: <%=mDefault.getPILastName()%>'+'\n';
codingHistoryComment += 'Appl ID: <%=mDefault.getApplId()%>; File Year: <%=mDefault.getApplId()%>'+'\n';
在java中我试图将\ n替换为<:
String str = soChild2.getChild("codingHistoryComment").getValue().trim();
if(str.contains("\\n")){
str = str.replaceAll("(\r\n|\n)", "<br>");
}
然而,textarea仍然填充了“\ n”字符:
Coping Option: Delete all codes and replace\nSource Proj Num: R21AR058864-02\nSource PI Last Name: SZALAI\nAppl ID: 7924675; File Year: 7924675\n
感谢。
答案 0 :(得分:1)
在java中我试图将\ n替换为
请勿替换“\ n”。 JTextArea会将其解析为新的行字符串。
尝试将其转换为“br”标记也无济于事,因为JTextArea不支持html。
我总是只使用以下代码用文本填充文本区域:
JTextArea textArea = new JTextArea(5, 20);
textArea.setText("1\n2\n3\n4\n5\n6\n7\n8\n9\n0");
答案 1 :(得分:1)
// automatically wrap lines
jTextArea.setLineWrap( true );
// break lines on word, rather than character boundaries.
jTextArea.setWrapStyleWord( true );
来自here。
答案 2 :(得分:1)
这是一个有效的测试,试试看:
String str = "This is a test\r\n test.";
if(str.contains("\r\n")) {
System.out.println(str);
}
答案 3 :(得分:0)
假设Javascript(因为您尝试使用HTML中断行替换):
HTML textarea换行符应该是换行符\n
,而不是HTML换行符<br>
。尝试使用下面的代码删除额外的斜杠,而不是当前的if语句和替换。不要忘记在替换后将值分配给textarea。
尝试:
str = str.replaceAll("\\n", "\n");
答案 4 :(得分:0)
我认为你的问题在这里:
if(str.contains("\\n")){
而不是"\\n"
,您只需要"\n"
然后代替"\n"
,您需要"\\n"
:
str = str.replaceAll("(\r\n|\n)", "<br>");
顺便说一下,if(str.contains()
并不是真的需要,因为如果没有"\n"
个字符,那么运行替换all不会有什么坏处。