模板函数-内置函数

plus/minus/times/divide

函数 说明 格式 示例 备注
plus 加 .value1 | plus .value2 ``2 plus 3=> 5
minus 减 .value1 | minus .value2 ``2 minus 3=> 1
times 乘 .value1 | times .value2 ``2 times 3=> 6
divide 除 .value1 | divide .value2 ``2 divide 3=> 1.5

text

`.value | text`

将 value 变量值去掉HTML标签,仅显示文字内容(并且去掉 script 标签)。 示例:

`"<div>测试</div>"|text`
// 输出: 测试

htmlencode/encode/html

`.value | htmlencode`
`.value | encode`
`.value | html`

将 value 变量值进行html转义。 示例:

`"<div>测试</div>"|html`
// 输出: &lt;div&gt;测试&lt;/div&gt;

htmldecode/decode

`.value | htmldecode`
`.value | decode`

将 value 变量值进行html反转义。 示例:

`"&lt;div&gt;测试&lt;/div&gt;" | htmldecode`
// 输出: <div>测试</div>

urlencode/url

`.url | url`

将 url 变量值进行 url 转义。 示例:

`"https://goframe.org" | url`
// 输出: https%3A%2F%2Fgoframe.org

urldecode

`.url | urldecode`

将 url 变量值进行 url 反转义。 示例:

`"https%3A%2F%2Fgoframe.org"|urldecode`
// 输出: https://goframe.org

date

`.timestamp | date .format`
`date .format .timestamp`
`date .format`

将 timestamp 时间戳变量进行时间日期格式化,类似PHP的 date 方法, format 参数支持 PHP date 方法格式,亦可参考 时间管理-gtime 。

当 timestamp 变量为 空(或者 0)时,表示以当前时间作为时间戳参数执行打印。

示例:

`1540822968 | date "Y-m-d"`
`"1540822968" | date "Y-m-d H:i:s"`
`date "Y-m-d H:i:s"`
// 输出:
// 2018-10-29
// 2018-10-29 22:22:48
// 2018-12-05 10:22:00

compare

`compare .str1 .str2`
`.str2 | compare .str1`

将 str1 和 str2 进行字符串比较,返回值: - 0 : str1 == str2 - 1 : str1 > str2 - -1 : str1 < str2

示例:

`compare "A" "B"`
`compare "1" "2"`
`compare 2 1`
`compare 1 1`
// 输出:
// -1
// -1
// 1
// 0

replace

`.str | replace .search .replace`
`replace .search .replace .str`

将 str 中的 search 替换为 replace。 示例:

`"I'm中国人" | replace "I'm" "我是"`
// 输出:
// 我是中国人

substr

`.str | substr .start .length`
`substr .start .length .str`

将 str 从 start 索引位置(索引从0开始)进行字符串截取 length,支持中文,类似PHP的 substr 函数。 示例:

`"我是中国人" | substr 2 -1`
`"我是中国人" | substr 2  2`
// 输出:
// 中国人
// 中国

strlimit

`.str | strlimit .length .suffix`

将 str 字符串截取 length 长度,支持中文,超过长度则追加 suffix 字符串到末尾。 示例:

`"我是中国人" | strlimit 2  "..."`
// 输出:
// 我是...

concat

`concat .str1 .str2 .str3...`

拼接字符串。 示例:

`concat "我" "是" "中" "国" "人"`
// 输出:
// 我是中国人

hidestr

`.str | hidestr .percent .hide`

将 str 字符串按照 percent 百分比从字符串中间向两边隐藏字符(主要用于姓名、手机号、邮箱地址、身份证号等的隐藏),隐藏字符由 hide 变量定义。 支持中文,支持email格式。 示例:

`"热爱GF热爱生活" | hidestr 20  "*"`
`"热爱GF热爱生活" | hidestr 50  "*"`
// 输出:
// 热爱GF*爱生活
// 热爱****生活

highlight

`.str | highlight .key .color`

将 str 字符串中的关键字 key 按照定义的颜色 color 进行前置颜色高亮。 示例:

`"热爱GF热爱生活" | highlight "GF" "red"`
// 输出:
// 热爱<span style="color:red;">GF</span>热爱生活

toupper/tolower

`.str | toupper`
`.str | tolower`

将 str 字符串进行大小写转换。 示例:

`"gf" | toupper`
`"GF" | tolower`
// 输出:
// GF
// gf

nl2br

`.str | nl2br`

将 str 字符串中的 \n/\r 替换为html中的 <br /> 标签。 示例:

`"Go\nFrame" | nl2br`
// 输出:
// Go<br />Frame

dump

`dump .var`

格式化打印变量,功能类似于 g.Dump 方法,常用于开发调试。 示例:

gview.Assign("var", g.Map{
    "name" : "john",
})
``` ```
`dump .var`
// 输出:
// <!--
// {
//     name: "john"
// }
// -->

map

`map .var`

将模板变量转换为 map[string]interface{} 类型,常用于 range...end 遍历。

maps

`maps .var`

将模板变量转换为 []map[string]interface{} 类型,常用于 range...end 遍历。

json/xml/ini/yaml/yamli/toml

函数 说明 格式
json 将模板变量转换为 JSON 格式字符串。 json .var
xml 将模板变量转换为 XML 格式字符串。 xml .var
ini 将模板变量转换为 INI 格式字符串。 ini .var
yaml 将模板变量转换为 YAML 格式字符串。 yaml .var
yamli 将模板变量转换为带有自定义缩进的 YAML 格式字符串。 yamli .var .indent
toml 将模板变量转换为 TOML 格式字符串。 toml .var