现在的位置: 首页 > 综合 > 正文

javascript 错误“缺少十六进制数字”的处理

2012年02月08日 ⁄ 综合 ⁄ 共 2802字 ⁄ 字号 评论关闭
问题:

我是打算使用上面的语句把数据库的连接字符串写入上一级网页的connstr文本框中,但是在执行时ie总报告“缺少十六进制数字”。

代码如下:
a="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/网站设计/dianming/upload/student.mdb;"
Response.Write("<script>")
    html="parent.document.getElementById(""connstr"").value="""+a+""""
    Response.Write(html+";")
Response.Write("</script>")

问题分析:

到底是怎么回事呢?经过试验发现,问题出在字符串a中的 “/” 上,    原来javascript中“/”是个特殊的字符,在很多场合需要转换,为此我使用“/“临时替代”/“一下,在使用到此字符串的时候再转换回来就可以了。
代码改写如下:

a="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:/网站设计/dianming/upload/student.mdb;"
html=html+replace(a,"/","/")+""""

Response.Write("<script>")
    html="parent.document.getElementById(""connstr"").value="""+a+""""
    Response.Write(html+";")
Response.Write("</script>")

参考:
例子程序:

*Encode for HTML.
  */
  public static String htmlEncoder(String str)
  {
    if(str==null || str.equals(""))
      return "";
    String res_str;
    res_str=strReplace(str,"&","&amp;");
    res_str=strReplace(str," ","&nbsp;");
    res_str=strReplace(str,"<","&lt;");
    res_str=strReplace(str,">","&rt;");
    res_str=strReplace(str,"/"","&quot;");
    res_str=strReplace(str,"'","&#039;");
    return res_str;
  }

  /**
  *Encode for HTML-Text.
  */
  public static String htmlTextEncoder(String str)
  {
    if(str==null || str.equals(""))
      return "";
    String res_str;
    res_str=strReplace(str,"&","&amp;");
    res_str=strReplace(str,"<","&lt;");
    res_str=strReplace(str,">","&rt;");
    res_str=strReplace(str,"/"","&quot;");
    res_str=strReplace(str,"'","&#039;");
    res_str=strReplace(str," ","&nbsp;");
    res_str=strReplace(str,"/r/n","<br/>");
    res_str=strReplace(str,"/r","<br/>");
    res_str=strReplace(str,"/n","<br/>");
    return res_str;
  }

  /**
  *Encode for URL.
  */
  public static String urlEncoder(String str) {
    return java.net.URLEncoder.encode(str) ;
  }

  /**
  *Encode for XML.
  */
  public static String xmlEncoder(String str)
  {
    if(str==null || str.equals(""))
      return "";
    String res_str;
    res_str=strReplace(str,"&","&amp;");
    res_str=strReplace(res_str,"<","&lt;");
    res_str=strReplace(res_str,">","&gt;");
    res_str=strReplace(res_str,"/"", "&quot;");
    res_str=strReplace(res_str,"/'", "&acute;");
    return res_str;
  }

  /**
  *Encode for SQL.
  */
  public static String sqlEncoder(String str)
  {
    if(str==null || str.equals(""))
      return "";
    String res_str;
    res_str=strReplace(str,"'","''");
    return res_str;
  }

  /**
  *Encode for Javascript.
  */
  public static String jsEncoder(String str)
  {
    if(str==null || str.equals(""))
      return "";
    String res_str;
    res_str=strReplace(str,"'","//'");
    res_str=strReplace(str,"/"","///"");
    res_str=strReplace(str,"/r/n","///n");
    res_str=strReplace(str,"/n","///n");
    res_str=strReplace(str,"/r","///n");
    return res_str;
  }

html=html+replace(table_list(fileExt,path,2),"/","/")+"""" 

抱歉!评论已关闭.