【发布时间】:2012-02-12 11:04:42
【问题描述】:
在字符串值中用 \" 序列替换引号字符的最简单方法是什么?
【问题讨论】:
在字符串值中用 \" 序列替换引号字符的最简单方法是什么?
【问题讨论】:
这将是 fn:replace() 函数。
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
${fn:replace(foo, '"', '\\"')}
与具体问题无关,这是一个经常重复出现的要求,以防止在将用户控制的输入重新显示为 HTML 属性时出现格式错误的 HTML。 通常,您应该改用<c:out> 或fn:escapeXml()。例如
<input name="foo" value="<c:out value="${param.foo}" />" />
<input name="foo" value="${fn:escapeXml(param.foo)}" />
它不仅考虑引号,还考虑所有其他 XML 特殊字符,例如 <、>、& 等。
【讨论】:
使用 javascript 替换(用 /g 替换所有匹配项)
string.replace(/"/g, '\\"')
【讨论】: