54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
package utils
|
||
|
||
import (
|
||
"crypto/md5"
|
||
"encoding/hex"
|
||
"fmt"
|
||
"os"
|
||
"regexp"
|
||
"strings"
|
||
)
|
||
|
||
// Load 获取插件目录中的文件信息
|
||
func Load(dir string) ([]string, error) {
|
||
entries, err := os.ReadDir(dir)
|
||
if err != nil {
|
||
return nil, fmt.Errorf("读取目录错误:%w", err)
|
||
}
|
||
files := make([]string, 0, len(entries))
|
||
for _, entry := range entries {
|
||
info, err := entry.Info()
|
||
if err != nil {
|
||
return nil, fmt.Errorf("获取文件信息错误:%w", err)
|
||
}
|
||
if !info.IsDir() {
|
||
files = append(files, fmt.Sprintf("%s/%s", dir, info.Name()))
|
||
}
|
||
}
|
||
return files, nil
|
||
}
|
||
|
||
func Md5(values []byte) string {
|
||
hash := md5.Sum(values)
|
||
return strings.ToUpper(hex.EncodeToString(hash[:]))
|
||
}
|
||
|
||
// IsPhoneNumber 检查给定的字符串是否为有效的手机号码
|
||
func IsPhoneNumber(phoneNumber string) bool {
|
||
phoneRegex := `^1[34578]\d{9}$`
|
||
return regexp.MustCompile(phoneRegex).MatchString(phoneNumber)
|
||
}
|
||
|
||
// IsEmail 检查给定的字符串是否为有效的电子邮箱地址
|
||
func IsEmail(email string) bool {
|
||
var emailRegex = regexp.MustCompile(`[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`)
|
||
return emailRegex.MatchString(email)
|
||
}
|
||
|
||
// IsValidQQ 检查给定的字符串是否为有效的 QQ 号
|
||
func IsValidQQ(qq string) bool {
|
||
// QQ号正则表达式:5到11位数字,且开头不为0的情况
|
||
re := regexp.MustCompile(`^(?!0)[0-9]{5,11}$`)
|
||
return re.MatchString(qq)
|
||
}
|