Sprig 模板函数系列: string 函数
sprig
是一个 Golang 模板函数库,大规模使用 sprig
的知名软件有 Helm
等。
目前,Sprig 库为 Go 的模板语言提供了 70 多个模板函数。接下来一共分为 12 个系列总结 sprig
的这些模板函数,今天是第一个系列: 操作 string
的模板函数.
trim
trim
函数删除字符串的空格.
如:
trim " hello "
输出 hello
trimAll
从字符串的前面或后面删除给定的字符.
如:
trimAll "$" "$5.00"
输出字符串 5.00
trimSuffix
删除字符串的后缀.
如:
trimSuffix "-" "hello-"
输出 hello
trimPrefix
删除字符串的前缀.
如:
trimPrefix "-" "-hello"
输出 hello
upper
将整个字符串转换为大写.
如:
lower "hello"
输出 HELLO
lower
将整个字符串转换为小写.
如:
lower "HELLO"
输出 hello
title
将首字母大写.
如:
title "hello world"
输出 Hello World
untitle
移除首字母大写.
如:
untitle "Hello World"
输出 hello world
repeat
多次重复一个字符串.
如:
repeat 3 "hello"
输出 hellohellohello
substr
从字符串中获取子字符串。需要三个参数:
- 开始下标 (int) 闭区间
- 结束下标 (int) 开区间
- 源字符串 (string)
如:
substr 0 5 "hello world"
输出 hello
nospace
删除字符串中的所有空格。
如:
nospace "hello w o r l d"
输出 helloworld
trunc
截断字符串(不添加后缀).
如:
trunc 5 "hello world"
输出 hello
如
trunc -5 "hello world"
输出 world
abbrev
用省略号(...
)截断字符串右边. 需要两个参数:
- 目标最大长度. 其中省略号长度为 3
- 源字符串
如:
abbrev 5 "hello world"
输出 he...
abbrevboth
用省略号(...
)截断字符串两边. 需要三个参数:
- 左边开始下标
- 目标最大长度
- 源字符串
如:
abbrevboth 5 10 "1234 5678 9123"
输出 ...5678...
initials
给定多个单词,取每个单词的第一个字母组合成一个新字符串。
如:
initials "First Try"
输出 FT
randAlphaNum/randAlpha/randNumeric/randAscii
这四个函数生成加密安全(使用 crypto/rand)随机字符串,但具有不同的基本字符集:
randAlphaNum
使用0-9a-zA-Z
randAlpha
使用a-zA-Z
randNumeric
使用0-9
randAscii
使用所有可打印的 ASCII 字符
如:
randNumeric 3
输出三位数的随机字符串。