Golang 1.6: text/template内进行HTML/JavaScript/URL转义处理_html/css_WEB-ITnose

WBOY
發布: 2016-06-24 11:19:05
原創
1626 人瀏覽過

本文针对版本 Golang 1.6

首先Go中有两个模板package,一个是 html/template,它可以尝试解析HTML并在适当的地方做编码,另一个是 text/template,从名字是也可以看出来,这个就是基于纯文本的模板处理,因此如果需要编码转义,则需要手动加函数,文档 在这里。模板中的函数调用格式是:

functionName [Argument...]
登入後複製

text/template中很多预定义函数,这里我们关注HTML, JavaScript和URL的转义,分别对应 html, js和 urlquery这三个函数,所以使用这三个函数,然后在后面加上参数即可。

完整示例代码:

package mainimport (    "bytes"    "fmt"    "text/template")func main() {    t := template.Must(template.New("test").Parse("原始:{{.}}\nHTML:{{html .}}\nJS:{{js .}}\nURL:{{urlquery .}}"))    buffer := &bytes.Buffer{}    err := t.Execute(buffer, "刘 123 <> \"")    if err != nil {        panic(err)    }    fmt.Print(buffer.String())}
登入後複製

输出:

原始:刘 123 <> "HTML:刘 123 <> "JS:刘 123 \x3C\x3E \"URL:%E5%88%98+123+%3C%3E+%22
登入後複製
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板