当前位置: 首页 > 面试题库 >

白名单标签免于使用Go的html / template进行转义

耿弘阔
2023-03-14
问题内容

将[]字节传递到模板中,作为论坛风格的Web应用程序上的消息发布的正文。在模板中,调用一个方法以转换为字符串,并一路切换所有换行符以换行:

<p>{{.BodyString}}</p>

func (p *Post) BodyString() string {
    nl := regexp.MustCompile(`\n`)
    return nl.ReplaceAllString(string(p.Body), `<br>`)
}

最终结果是:

paragraphs <br> <br>in <br> <br>this <br> <br>post

我不想用HTML(p.Body)传递整个帖子,因为它表示来自潜在不可靠来源的第三方数据。有没有一种方法可以使用Vanilla
Go1模板包将仅某些标签用于格式设置白名单?


问题答案:

我确实认为您想解析HTML。exp / html中的HTML解析器被认为是不完整的,因此已从Go
1中删除,尽管exp树仍位于Go源树中,并且例如可以通过每周标签进行访问。我不知道到底什么是不完整的。我曾经将它用于一个简单的任务,它满足了我的需求。

当然,还可以检查仪表板并查看相关的SO帖子,Go1之后是否有任何聪明的方法来获取exp/ html?,主要用于推荐http://code.google.com/p/go-html-transform/



 类似资料:
  • 问题内容: 这是用于.NET。设置了IgnoreCase,未设置MultiLine。 通常我在正则表达式方面很体面,也许我的咖啡因含量低… 允许用户输入HTML编码的实体(<lt;,<amp;等),并使用以下HTML标签: 允许自动关闭 和,带有或不带有额外的空间,但不是必需的。 我想要: 除去上面列出的那些标记之外的所有开始和结束HTML标记。 从其余标签中删除属性, 但 锚点可以具有href。

  • 问题 你需要使用命名实体来替代 HTML 标签: <br/> => &lt;br/&gt; 解决方案 htmlEncode = (str) -> str.replace /[&<>"']/g, ($0) -> "&" + {"&":"amp", "<":"lt", ">":"gt", '"':"quot", "'":"#39"}[$0] + ";" htmlEncode('<a hr

  • 我有这样的代码,它对名为'username'的变量的用户输入进行了净化: 我想对这个页面上的每个输入执行相同的过程,但我有大约12个不同的输入,因为它是一个注册表单。有没有更简单的方法来清理和检查每个输入,而不是对每个输入应用preg_replace()和if语句?

  • 所以我在我的Rails应用程序中使用简单表单,我需要去掉简单表单附带的每个输入上的标签。 我尝试了:<%=f.input:email,class:“login-field”,label:“”%>将标签留空,但这不起作用。 谢谢你。

  • XSLT 定义了一种重用模板的方法,以便为特定类型/上下文的节点生成所需的输出。 声明 以下是元素的语法声明。 上述声明中的属性说明 - - 要应用模板的元素的名称。 - 模式,表示要应用模板的元素。 - 模板的优先级编号,高优先级模板前面不考虑具有低优先级的匹配模板。 - 允许元素多次处理以产生不同的结果。 元素 父元素 - , 子元素 - ,,, , , , , , , , , , , , ,

  • 本文向大家介绍JSP实现用于自动生成表单标签html代码的自定义表单标签,包括了JSP实现用于自动生成表单标签html代码的自定义表单标签的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JSP实现用于自动生成表单标签html代码的自定义表单标签。分享给大家供大家参考。具体如下: 这个是自己写的一个简单的JSP表单标签,用于自动生成checkbox,select,radio等标签,传入菜单集