12345678910111213141516171819202122232425262728293031323334353637 |
- // @Author gmy 2024/8/7 10:41:00
- package utils
- import (
- "github.com/mozillazg/go-pinyin"
- "regexp"
- "strings"
- )
- // GenerateIndexCode 指标编码规则:粮油商务网拼音首字母+指标名称拼音首字母,数字、字母保留,特殊字符拿掉
- // 例:美湾:9月U:国际大豆进口成本价:期货收盘:张家港 -----> lyswwmw9yUgjddjkcbjqhspzjg
- func GenerateIndexCode(sourceName string, indexName string) string {
- indexInitials := getFirstLetter(indexName)
- // 拼接后过滤特殊字符,保留数字和字母
- indexCode := sourceName + indexInitials
- re := regexp.MustCompile(`[^a-zA-Z0-9]`)
- indexCode = re.ReplaceAllString(indexCode, "")
- // 转换为小写
- indexCode = strings.ToLower(indexCode)
- return indexCode
- }
- // 获取字符串中的拼音首字母
- func getFirstLetter(s string) string {
- a := pinyin.NewArgs()
- p := pinyin.Pinyin(s, a)
- firstLetters := ""
- for _, syllables := range p {
- if len(syllables) > 0 {
- firstLetters += strings.ToUpper(syllables[0][:1])
- }
- }
- return firstLetters
- }
|