我在java nashorn引擎eval
中有一个javascript代码。
像这样的东西
engine.eval("<code>.... print(printIt.substring(1) + '==>Value:' + obj[property].replaceAll('\n', ' ').....<code>");
在这里,我想用简单的空格替换\n
和\r
的所有出现。
但是当我运行这个时,我得到错误:
线程“main”中的异常javax.script.ScriptException :: 1:426 缺少近距离报价
答案 0 :(得分:3)
你错误地没有逃避\n
的反斜杠。
如果您正在执行.replaceAll('\n', '<somethng>')
,那么您实际上正在搜索换行和替换,这不等于搜索\n
字符串。
以下是您应该如何进行转义:
obj[property].replaceAll('\\n', ' ').replaceAll('\\r', ' ') \\for replacing all newline and carriage return.
旁注:顺便说一下,我很有兴趣知道你为什么要替换它\r
它没有太大的用处,因为它现在不经常单独使用。以下是\r
和\n
的定义。
\r
= CR(回车)//在X之前用作Mac OS中的换行符
\n
= LF(换行)//在Unix / Mac OS X中用作新行字符
\r\n
= CR + LF //用作Windows中的新行字符