转义在jsp's脚本

escaping in jsp's scripts

本文关键字:脚本 jsp 转义      更新时间:2023-09-26

我在jquery上按值搜索列表,这样做是为了转义空格并根据其值找到输入:

value.replace(/([^A-Z0-9])/g, '''$1'))

但是,在服务器呈现页面后,结果脚本最终会显示为

value.replace(/([^A-Z0-9])/g, ''$1'))

请注意,replace值现在只有一个'',并且不能按我的意愿工作。

为什么页面渲染会这样做?如果我将JavaScript从jsp页面中移出,那么一旦导入页面,它还会这样做吗?

Jsp在服务器端运行,所以如果将js移动到一个单独的文件中,那么就可以了,因为浏览器将从客户端加载js。

为了回答您关于jsp呈现的问题的另一部分,上面的代码是否在Java字符串中?Java还使用''反斜杠来转义字符串中的字符。

前面的答案可能有助于您正确地从JSP脚本中的JS字符串中转义斜杠和其他特殊字符。

您可以使用Apache StringEscapeUtils中提供的函数。

或者,您可以在jsp脚本中的js代码中将所有双斜杠替换为四斜杠。

例如:

var jsVariable = "${fn:replace(javaVariable, '''', '''''')}";