在javascript中转义java端字符串

时间:2013-10-17 15:17:35

标签: javascript jquery jsp

我有test.jsp

<script>
var name="<%=testName %>";
</script>

"testName" varible全局声明,它的值为"javascript:alert("hi");"

在确定包含双引号的值时,它会给出未终止的字符串错误。 我试着逃跑了。 java端编码/解码但仍然有分配问题。 在javascript或jquery中会有什么方法?

3 个答案:

答案 0 :(得分:1)

您可以通过prepending \将引号/字符转义为它:

JSP中的

<script>
var name="<%=testName.replace('"','\"') %>";
</script>

或JS

alert(variabl.replace(/"/g, '\\"'));

检查Passing a parameter to function with single quote

答案 1 :(得分:0)

尝试简单

<script>
var name=<%=new Gson().toJson(testName)%>;
</script>

答案 2 :(得分:0)

我会在将其传递给前端之前从后端的字符串中删除任何引号。

但是,如果你需要在字符串中保留引号,你应该在后端转义它们。

因此,如果前端使用单引号括起一个字符串,则必须在后端转义单引号。

String myString = "my string\\'s test";

在前端,它最终将成为

var text = 'my string\' test';