要把输入的内容进行html转义,对应关系如下:
HTML原代码显示结果 描述
&lt <小于号或显示标记
&gt >大于号或显示标记
&amp &可用于显示其它特殊字符
&quot " 引号
&reg ® 已注册
&copy © 版权
&trade™ 商标
&ensp 半个空白位
&emsp 一个空白位
&nbsp 不断行的空白
示例代码如下:
<p>
<% String value = request.getParameter("content")
if (value == null || value.length() == 0) {
value = ""
}
StringBuffer result = null
String filtered = null
for (int i = 0i <value.length()i++) {
filtered = null
switch (value.charAt(i)) {
case '<':
filtered = "<"
break
case '>':
filtered = ">"
break
case '&':
filtered = "&"
break
case '"':
filtered = """
break
case '\'':
filtered = "'"
break
}
if (result == null) {
if (filtered != null) {
result = new StringBuffer(value.length() + 50)
if (i >0) {
result.append(value.substring(0, i))
}
result.append(filtered)
}
} else {
if (filtered == null) {
result.append(value.charAt(i))
} else {
result.append(filtered)
}
}
}
value = (result == null ? value : result.toString())
out.println(value)
%>
<input type="textField" name="content" value="<%=value %>" />
</p>
一般情况下,在jQuery选择器中,我们很少会用到诸如“.”、“#”、“(”、“[”等特殊字符,因为根据W3C规定,HTML文档中属性的值是不能包含有这些个特殊字符的,但是在实际应用中,偶尔也会遇到表达式中含有“#”和“.”等特殊字符。这时候需要对这些字符进行转义1、可能一:你这个table里面的内容是动态加载进去的,如果在加载完毕之前var obj=document.getElementsByName("exceptionReasonId")是取不到值的,所以你先检查是否是调用的先后问题。
2、可能二:document.getElementsByName("exceptionReasonId")取到的可能有多个,你看看它的length。如果有多个试试for(var i=0i<......)。
个人觉得第一种情况可能性比较大。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)