11 votes

Fonction JSTL pour remplacer les caractères de citation dans une chaîne de caractères ?

Quel est le moyen le plus simple de remplacer les caractères guillemets par la séquence \" à l'intérieur des valeurs de chaînes de caractères ?

16voto

BalusC Points 498232

Ce sera le fn:replace() fonction.

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

Sans rapport Pour répondre à la question concrète, il s'agit d'une exigence récurrente afin d'éviter les HTML malformés lors de la réaffichage des entrées contrôlées par l'utilisateur en tant qu'attribut HTML. Normalement vous devez utiliser <c:out> o fn:escapeXml() pour cela. Par exemple.

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

Il ne tient pas seulement compte des guillemets, mais aussi de tous les autres caractères spéciaux XML tels que < , > , & etc.

Voir aussi :

-7voto

Troy Barlow Points 184

Utiliser le remplacement javascript (avec /g pour remplacer toutes les occurrences)

string.replace(/"/g, '\\"')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X