JSTL function to replace quote chars inside a stri

2019-01-27 16:37发布

What is the simplest way to replace quote characters with \" sequence inside string values?

2条回答
三岁会撩人
2楼-- · 2019-01-27 16:48

That'll be the fn:replace() function.

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
${fn:replace(foo, '"', '\\"')}

Unrelated to the concrete question, this is an often recurring requirement in order to prevent malformed HTML when redisplaying user controlled input as a HTML attribute. Normally, you should use <c:out> or fn:escapeXml() for this instead. E.g.

<input name="foo" value="<c:out value="${param.foo}" />" />
<input name="foo" value="${fn:escapeXml(param.foo)}" />

It not only takes quotes into account, but also all other XML special characters like <, >, &, etc.

See also:

查看更多
We Are One
3楼-- · 2019-01-27 16:56

Use javascript replace (with /g to replace all occurrences)

string.replace(/"/g, '\\"')
查看更多
登录 后发表回答