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

输出三位数的随机字符串。

References