比如
<script language="javascript">
var scriptVar=<%=javaVar%>;
</scipt>通常这种情况下是正确的,但如果变量javaVar中,含有回车和引号时,就会报错,因为在客户端被换了行,或引号异常,向高手讨教一个java函数,进行包装这种变量

解决方案 »

  1.   

    如果你是要把特殊字符转化成html语法的字符,我倒是有现成的。这样的:
    public static String dvHTMLEncode(String fString){
    if(!fString.equals("null") && fString!=null){
        fString = replace(fString, ">", "&gt;");
        fString = replace(fString, "<", "&lt;");
                fString = replace(fString, "&", "&amp;");
        //fString = replace(fString, "&amp;nbsp;", "<I></I>&nbsp;");
        fString = replace(fString, " ", "&nbsp;");
        fString = replace(fString, "\"", "&quot;");
        fString = replace(fString, "\'", "&#39;");
        fString = replace(fString, "\r", "");
        //fString = replace(fString, CHR(10) & CHR(10), "</P><P> ");
        fString = replace(fString, "\n", "<BR> ");
                fString = replace(fString, "\\", "&#92;");           
    }
            return fString;
    }
    如果要转化为script支持的,你就以按照上面的参考一下,javascript中特殊字符有
    \b ----退格 
    \f ----走纸换页 
    \n ----换行 
    \r ----回车 
    \t ----横向跳格 (Ctrl-I) 
    \' ----单引号 
    \" ----双引号 
    \\ ----反斜杠 
      

  2.   

    首先感谢上面两位的回复,
    不过离我的目标还有些距离,我的意思是这个样的,在我的代码里面有这么一行:
    <a href="#" onclick="showPrint('<%=spaceStr%>')">打印</a>
    而变量spaceStr有这么一个值:spaceStr=请将"看广州活动"通知电子版给一份我,谢谢!<br>这个样的化,客户端代码就变成了:
    <a href="#" onclick="showPrint('请将"看广州活动"通知电子版给一份我,谢谢!<br>')">打印</a>Html里面的"和javascript函数的就冲突了,会报脚本错误,但是如果将这个变量放到textarea里,就没事,
    比如
    <textarea name="mytextarea" id="mytextarea"><%=spaceStr%></textarea>
    这时在客户端,javascript就可以获得mytextarea的值,
    <script language=javascript>
         var me=document.getElementById("mytextarea");
         alert(me); 
    </script>
    这个样的话,这个特殊的java变量就放到了javascript变量里了,我的意思是为什么,这种间接的方法能够获得java变量,直接就不行啊,
    到底用什么方法才可以解决呢,个人感觉应该有个java函数用来转换,第一个真正解决这个问题的至少给分50,其他酌情给分,不够再加。
      

  3.   

    我不想改变变量的值,替换自然就改变了值,不提换也能解决,就象放到textarea里面,但是每次都这么解决,就太麻烦,总有个好点的方法吧
      

  4.   

    onclick=showPrint('请将"看广州活动"通知电子版给一份我,谢谢!<br>')
    这样就行,onclick属性不用加引号。回车换行的,用javaStr.replaceAll("\r\n","");去掉。
      

  5.   

    我现在有了解决方案,
    将java变量里面的作如下替换:
    "----------->\"
    '----------->\'
    \n---------->\\n
    \r---------->\\r
    这样java变量输出到客户端的时候,引号和换行,就不会有问题了,可是这又要用到正则表达式,
    <%!
    public static String javaToScript(String src) {
    src=src.replaceAll("\n","\\n");
    src=src.replaceAll("\r","\\r");
    src=src.replaceAll("\"","\\\"");
    src=src.replaceAll("\'","\\\'");
    return src;
    }
    %>
    这个样子不行,望高手赐教
      

  6.   

    src=src.replaceAll("\n","\\\\n");
    src=src.replaceAll("\r","\\\\r");
    src=src.replaceAll("\"","\\\\\"");
    src=src.replaceAll("\'","\\\\\'");