我有一个必须用于传递给JavaScript函数的字符串。我已经尝试了很多方法,但是仍然无法使它起作用。

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


名称字段是一个包含单引号的字符串,例如It's Morning。我尝试使用:

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.replaceAll single backslashes with double backslashes

09-05 14:21