4

我使用了 SafeHtmlUtils.htmlEscape(text) 并且我想使用相反的功能。你能告诉我gwt中是否有像unescapeHtml()这样的功能

4

3 回答 3

9

如果(并且请仅当)您可以信任文本不包含恶意内容,您可以使用

import com.google.gwt.user.client.ui.HTML;

String unescaped = new HTML(text).getText();
于 2012-07-18T22:07:18.013 回答
0

如果没有做任何事情来做这个技巧(比如一些 GWT 项目),你可以使用 javascript snip 在 JSNI 方法中实现它,你可以在这里找到:[CSS/HTML/Js] Unescaping HTML in javascript

于 2012-07-18T08:25:28.143 回答
0

我想要一些易于单元测试的东西,所以我实现了' htmlUnescape() ',它可以反转SafeHtmlUtils.htmlEscape()SafeHtmlBuilder.appendEscapedLines()的效果。它们都存在于“共享”包中,并且在 JVM 中运行良好。

这个实用程序类可能对您有用...

private static class Replacer {
    private final String target;
    private final String replacement;
    private final RegExp re;

    private Replacer(String target, String replacement) {
        this.target = target;
        this.replacement = replacement;
        re = RegExp.compile(RegExp.quote(target), "g");
    }

    public String process(String s) {
        if (s.contains(target)) return re.replace(s, replacement);
        return s;
    }
}
于 2015-11-16T02:26:04.743 回答