Apply .gitignore rules
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
package stringUtil
|
||||
|
||||
import (
|
||||
"regexp"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
// 检查一个字符串是否是空字符串
|
||||
// content:上下文字符串
|
||||
// 返回值:
|
||||
// bool:true:空字符串 false:非空字符串
|
||||
func IsEmpty(content string) bool {
|
||||
if len(content) <= 0 {
|
||||
return true
|
||||
}
|
||||
|
||||
return strings.IndexFunc(content, func(item rune) bool {
|
||||
return unicode.IsSpace(item) == false
|
||||
}) < 0
|
||||
}
|
||||
|
||||
// 截取字符串
|
||||
// start:开始位置
|
||||
// length:截取长度
|
||||
// 返回值:
|
||||
// 截取后的字符串
|
||||
func Substring(str string, start, length int) string {
|
||||
// 先将字符串转化为[]rune格式(由于rune是字符串的基本单位)
|
||||
runeString := []rune(str)
|
||||
runeLength := len(runeString)
|
||||
end := 0
|
||||
|
||||
// 计算起始位置
|
||||
if start > runeLength {
|
||||
start = runeLength
|
||||
}
|
||||
|
||||
// 计算终止位置
|
||||
end = start + length
|
||||
if end > runeLength {
|
||||
end = runeLength
|
||||
}
|
||||
|
||||
if start > end {
|
||||
start, end = end, start
|
||||
}
|
||||
|
||||
return string(runeString[start:end])
|
||||
}
|
||||
|
||||
// 根据不同平台获取换行符
|
||||
// 返回值:
|
||||
// 换行符
|
||||
func GetNewLineString() string {
|
||||
switch os := runtime.GOOS; os {
|
||||
case "windows":
|
||||
return "\r\n"
|
||||
default:
|
||||
return "\n"
|
||||
}
|
||||
}
|
||||
|
||||
// 检查是否存在特殊符号
|
||||
// 1. emoji字符
|
||||
// 2. ascii控制字符
|
||||
// 3. \ " '
|
||||
// val:待检查的字符串
|
||||
// 返回值:
|
||||
// bool:true:有特殊字符 false:无特殊字符
|
||||
func IfHaveSpecialChar(val string) bool {
|
||||
if len(val) <= 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
// 表情符号过滤
|
||||
// Wide UCS-4 build
|
||||
emojiReg, _ := regexp.Compile("[^\U00000000-\U0000FFFF]+")
|
||||
if emojiReg.Match([]byte(val)) {
|
||||
return true
|
||||
}
|
||||
|
||||
// 排除控制字符和特殊字符
|
||||
for _, charItem := range val {
|
||||
// 排除控制字符
|
||||
if (charItem > 0 && charItem < 0x20) || charItem == 0x7F {
|
||||
return true
|
||||
}
|
||||
|
||||
// 排除部分特殊字符: \ " '
|
||||
switch charItem {
|
||||
case '\\':
|
||||
fallthrough
|
||||
case '"':
|
||||
fallthrough
|
||||
case '\'':
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// 判断string数组是否内容唯一
|
||||
func IsDistinct_string(list []string) (result bool) {
|
||||
if len(list) == 0 || len(list) == 1 {
|
||||
result = true
|
||||
return
|
||||
}
|
||||
|
||||
sort.Strings(list)
|
||||
|
||||
for i := 0; i < len(list)-1; i++ {
|
||||
if list[i] == list[i+1] {
|
||||
result = false
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
result = true
|
||||
return
|
||||
}
|
||||
|
||||
// 验证是否是电话号码
|
||||
func VerifyPhone(phone string) bool {
|
||||
regular := "^1[3-9]\\d{9}$"
|
||||
|
||||
reg := regexp.MustCompile(regular)
|
||||
return reg.MatchString(phone)
|
||||
}
|
||||
|
||||
// 转型成int64
|
||||
func StringToInt64(str string) int64 {
|
||||
num, err := strconv.ParseInt(str, 10, 64)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return num
|
||||
}
|
||||
Reference in New Issue
Block a user