mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2026-02-04 14:35:48 +08:00
优化智能DNS相关代码
This commit is contained in:
15
internal/utils/compare.go
Normal file
15
internal/utils/compare.go
Normal file
@@ -0,0 +1,15 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package utils
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
// EqualConfig 使用JSON对比配置
|
||||
func EqualConfig(config1 any, config2 any) bool {
|
||||
config1JSON, _ := json.Marshal(config1)
|
||||
config2JSON, _ := json.Marshal(config2)
|
||||
return bytes.Equal(config1JSON, config2JSON)
|
||||
}
|
||||
38
internal/utils/compare_test.go
Normal file
38
internal/utils/compare_test.go
Normal file
@@ -0,0 +1,38 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package utils_test
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestEqualConfig(t *testing.T) {
|
||||
type testType struct {
|
||||
Name string `json:"name"`
|
||||
Age int `json:"age"`
|
||||
}
|
||||
{
|
||||
var c1 = &testType{
|
||||
Name: "Lily",
|
||||
Age: 12,
|
||||
}
|
||||
var c2 = &testType{
|
||||
Name: "Lucy",
|
||||
Age: 12,
|
||||
}
|
||||
t.Log(utils.EqualConfig(c1, c2))
|
||||
}
|
||||
|
||||
{
|
||||
var c1 = &testType{
|
||||
Name: "Lily",
|
||||
Age: 12,
|
||||
}
|
||||
var c2 = &testType{
|
||||
Age: 12,
|
||||
Name: "Lily",
|
||||
}
|
||||
t.Log(utils.EqualConfig(c1, c2))
|
||||
}
|
||||
}
|
||||
12
internal/utils/email.go
Normal file
12
internal/utils/email.go
Normal file
@@ -0,0 +1,12 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package utils
|
||||
|
||||
import "regexp"
|
||||
|
||||
var emailReg = regexp.MustCompile(`(?i)^[a-z\d]+([._+-]*[a-z\d]+)*@([a-z\d]+[a-z\d-]*[a-z\d]+\.)+[a-z\d]+$`)
|
||||
|
||||
// ValidateEmail 校验电子邮箱格式
|
||||
func ValidateEmail(email string) bool {
|
||||
return emailReg.MatchString(email)
|
||||
}
|
||||
22
internal/utils/email_test.go
Normal file
22
internal/utils/email_test.go
Normal file
@@ -0,0 +1,22 @@
|
||||
// Copyright 2022 Liuxiangchao iwind.liu@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package utils_test
|
||||
|
||||
import (
|
||||
"github.com/TeaOSLab/EdgeAPI/internal/utils"
|
||||
"github.com/iwind/TeaGo/assert"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestValidateEmail(t *testing.T) {
|
||||
var a = assert.NewAssertion(t)
|
||||
a.IsTrue(utils.ValidateEmail("aaaa@gmail.com"))
|
||||
a.IsTrue(utils.ValidateEmail("a.b@gmail.com"))
|
||||
a.IsTrue(utils.ValidateEmail("a.b.c.d@gmail.com"))
|
||||
a.IsTrue(utils.ValidateEmail("aaaa@gmail.com.cn"))
|
||||
a.IsTrue(utils.ValidateEmail("hello.world.123@gmail.123.com"))
|
||||
a.IsTrue(utils.ValidateEmail("10000@qq.com"))
|
||||
a.IsFalse(utils.ValidateEmail("aaaa.@gmail.com"))
|
||||
a.IsFalse(utils.ValidateEmail("aaaa@gmail"))
|
||||
a.IsFalse(utils.ValidateEmail("aaaa@123"))
|
||||
}
|
||||
Reference in New Issue
Block a user