兄弟们,关于引号的问题,折磨死了,高手请进.

linuxyf 2005-12-09 04:12:20
<td><input type="radio" value="<%=str%>" name="UserID"></td>
在一个表格中我显示了一个字符串,str, str中包含双引号。

可我用javascript取出来之后,结果总是错误的。
document.form1.UserID.value

如果str = "abcd\"mmn";
取出来的结果却是"abcd\",

总是把第二个双引号后面的字符截掉,不知道为何会这样?
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxuu503 2005-12-09
  • 打赏
  • 举报
回复
在vbs过滤:

Replace(str,"&","&")
Replace(str,"<","<")
Replace(str,">","&rt")
Replace(str,"\"",""")
Replace(str,"'","'")
Replace(str," "," ")
Replace(str,"\r\n","<br>")
Replace(str,"\r","<br>")
Replace(str,"\n","<br>")
xtuwz 2005-12-09
  • 打赏
  • 举报
回复
我認為循環有問題呀,一般都是少了一次.
或是分界符有點問題,在前的放在後邊,在後的放在前邊
linuxyf 2005-12-09
  • 打赏
  • 举报
回复
xjdawu(无法界定) ,如果字符串中既有单引号,又有双引号,如何处理??
JK_10000 2005-12-09
  • 打赏
  • 举报
回复
后台字符串输出到前台要经过转码
如果是jsp
请用以下的工具进行转码:
输出到html里,用htmlEncoder
输出到js里,用jsEncoder


/*
* Created by Seamus
* Updated on 2004-10-21 by JK
*
*/
package com.jk.util;

public class CommStr
{
/**
*replace the old string to new string in the given destination string.
*/
public static java.lang.String strReplace(java.lang.String destStr, java.lang.String oldStr, java.lang.String newStr)
{
if(destStr==null)
return "";
String tmpStr = destStr;
int foundPos = tmpStr.indexOf(oldStr);
while (foundPos>=0)
{
tmpStr = tmpStr.substring(0,foundPos) + newStr + tmpStr.substring(foundPos + oldStr.length(),tmpStr.length());
foundPos = tmpStr.indexOf(oldStr,foundPos+newStr.length());
}
return tmpStr;
}

/**
*Encode for HTML.
*/
public static String htmlEncoder(String str)
{
if(str==null || str.equals(""))
return "";
String res_str;
res_str=strReplace(str,"&","&");
res_str=strReplace(str," "," ");
res_str=strReplace(str,"<","<");
res_str=strReplace(str,">","&rt;");
res_str=strReplace(str,"\"",""");
res_str=strReplace(str,"'","'");
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,"&","&");
res_str=strReplace(str,"<","<");
res_str=strReplace(str,">","&rt;");
res_str=strReplace(str,"\"",""");
res_str=strReplace(str,"'","'");
res_str=strReplace(str," "," ");
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,"&","&");
res_str=strReplace(res_str,"<","<");
res_str=strReplace(res_str,">",">");
res_str=strReplace(res_str,"\"", """);
res_str=strReplace(res_str,"\'", "´");
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;
}

}
lsqkeke 2005-12-09
  • 打赏
  • 举报
回复
Yes
注意javascript 中的字符串的引用! 单引号和双引号
xjdawu 2005-12-09
  • 打赏
  • 举报
回复
<td><input type="radio" value='abcd"mmn' name="UserID"></td>
<td><input type="radio" value="abcd'mmn" name="UserID"></td>
hbhbhbhbhb1021 2005-12-09
  • 打赏
  • 举报
回复
<td><input type="radio" value='<%=str%>' name="UserID"></td>

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧