|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*
-
- Copyright (c) [2023] [pcm]
- [pcm-coordinator] is licensed under Mulan PSL v2.
- You can use this software according to the terms and conditions of the Mulan PSL v2.
- You may obtain a copy of Mulan PSL v2 at:
- http://license.coscl.org.cn/MulanPSL2
- THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
- EITHER EXPaRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
- MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
- See the Mulan PSL v2 for more details.
-
- */
-
- package utils
-
- import (
- "math/rand"
- "regexp"
- "strings"
- "time"
- )
-
- const (
- CHARSET = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
- TIMEFORMAT = "20060102150405"
- )
-
- func RandomString(n int) string {
- sb := strings.Builder{}
- sb.Grow(n)
- for i := 0; i < n; i++ {
- sb.WriteByte(CHARSET[rand.Intn(len(CHARSET))])
- }
- return sb.String()
- }
-
- func TimeString() string {
- return time.Now().Format(TIMEFORMAT)
- }
-
- func IsValidHostAddress(input string) bool {
- //pattern := `^(([a-zA-Z0-9]+\.)*[a-zA-Z0-9]+\.[a-zA-Z]{2,}|(\d{1,3}\.){3}\d{1,3}):\d{1,5}$`
- pattern := `^((([a-zA-Z0-9]+\.)*[a-zA-Z0-9]+\.[a-zA-Z]{2,}|(\d{1,3}\.){3}\d{1,3}):\d{1,5})$|^.*\.com$`
- re, err := regexp.Compile(pattern)
- if err != nil {
- return false
- }
- return re.MatchString(input)
- }
-
- func MpaStringToInterface(m map[string]string) map[string]interface{} {
- result := make(map[string]interface{})
- for k, v := range m {
- result[k] = v
- }
- return result
- }
-
- func MapInterfaceToString(m map[string]interface{}) map[string]string {
- result := make(map[string]string)
- for k, v := range m {
- if str, ok := v.(string); ok {
- result[k] = str
- }
- }
- return result
- }
|