我在jquery上按值列表搜索并执行此操作以转义空格并根据其值查找输入:
value.replace(/([^A-Z0-9])/g, '\\$1'))
但是,在服务器呈现页面之后,结果脚本最终为
value.replace(/([^A-Z0-9])/g, '\$1'))
注意替换值现在只有一个\,并且它不能正常工作。
为什么页面渲染会这样做?如果我将JavaScript移出jsp页面,一旦导入到页面中它仍然会这样做吗?
答案 0 :(得分:0)
Jsp在服务器端运行,所以如果你将js移动到一个单独的文件中,那么你很好,因为浏览器将从客户端加载js。
要回答关于jsp渲染的问题的其他部分,上面的代码是Java字符串吗? Java还使用\反斜杠来转义字符串中的字符。
答案 1 :(得分:0)
This上一个答案可能会帮助您在JSP脚本中正确转义JS字符串中的斜杠和其他特殊字符。
您可以使用Apache StringEscapeUtils中提供的功能。
或者你可以在你的jsp脚本里面的js代码中用四倍斜线替换所有双斜杠。
例如:
var jsVariable = "${fn:replace(javaVariable, '\\', '\\\\')}";