单引号 JSP 到 JavaScript 函数

Single quote JSP to JavaScript function

本文关键字:函数 JavaScript JSP 单引号      更新时间:2023-09-26

我有一个字符串,必须用来传递给JavaScript函数。我已经尝试了很多方法,但我仍然无法正常工作。

<a href="javascript:goFac('<%=name%>')"><%=name%></a>

名称字段是包含单引号的字符串,例如"早上"。我尝试使用:

String nameString = rs.getString("name");
nameString = nameString.replaceAll("'","''");
<a href="javascript:goFac('<%=nameString %>')"><%=nameString%></a>

而且

nameString = URLEncoder.encode(nameString);

而且

nameString = nameString.replaceAll("'","&#39;");

而且

 nameString = nameString.replaceAll("'","&apos;");

我仍然无法让它工作。而且我也不能去EL。

如果你想在

Java代码中用JavaScript转义(反斜杠)单引号(''')替换字符串中的单引号('),那么你需要转义反斜杠字符(用反斜杠!例如:

nameString = nameString.replaceAll("'","'''"); 

另请参阅:String.replace所有带有双反斜杠的单反斜杠

尝试使用 String.fromCharCode(39) 而不是单引号

String.fromCharCode(39) 是单引号的 ASCII 代码。

如果你在JSP标签中这样做,你需要有足够的反斜杠,其中一个才能真正进入网页。 代码将是:

<a href="javascript:goFac('<%=nameString.replaceAll("'", "'''''") %>')"><%=nameString%></a>
您需要一个反斜杠来转义

另一个反斜杠,并且每个反斜杠都需要转义 - 因此有四个反斜杠(yuck)。

希望有帮助。

以下内容对我有用,因为HTML编码是在函数调用之前完成的,并将单引号替换为&#39;

nameString = nameString.replaceAll("&#39;","'''");