上代码:

// 截取字符串
func Substr(str string, start, length int) string {
 rs := []rune(str)
 rl := len(rs)
 var end int
 if start < 0 {
 start = rl - 1 + start
 }
 end = start + length
 if start > end {
 start, end = end, start
 }
 if start < 0 {
 start = 0
 }
 if start > rl {
 start = rl
 }
 if end < 0 {
 end = 0
 }
 if end > rl {
 end = rl
 }
 return string(rs[start:end])
}