1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 12:52:28 +08:00

feat: add RandSymbolChar

This commit is contained in:
dudaodong
2023-12-07 17:56:12 +08:00
parent dcef06e9da
commit 6fe8a9efe7
3 changed files with 37 additions and 0 deletions

View File

@@ -17,6 +17,7 @@ const (
LowwerLetters = "abcdefghijklmnopqrstuvwxyz"
UpperLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
SymbolChars = "!@#$%^&*()_+-=[]{}|;':\",./<>?"
)
func init() {
@@ -82,6 +83,12 @@ func RandNumeralOrLetter(length int) string {
return random(Numeral+Letters, length)
}
// RandSymbolChar generate a random symbol char(!@#$%^&*()_+-=[]{}|;':\",./<>?).
// Play: todo
func RandSymbolChar(length int) string {
return random(SymbolChars, length)
}
// random generate a random string based on given string range.
func random(s string, length int) string {
b := make([]byte, length)

View File

@@ -134,3 +134,20 @@ func ExampleRandUniqueIntSlice() {
// Output:
// ok
}
func ExampleRandSymbolChar() {
pattern := `^[\W|_]+$`
reg := regexp.MustCompile(pattern)
s := RandSymbolChar(6)
result1 := reg.MatchString(s)
result2 := len(s)
fmt.Println(result1)
fmt.Println(result2)
// Output:
// true
// 6
}

View File

@@ -154,3 +154,16 @@ func hasDuplicate(arr []int) bool {
}
return false
}
func TestRandSymbolChar(t *testing.T) {
t.Parallel()
pattern := `^[\W|_]+$`
reg := regexp.MustCompile(pattern)
symbolChars := RandSymbolChar(10)
assert := internal.NewAssert(t, "TestRandSymbolChar")
assert.Equal(10, len(symbolChars))
assert.Equal(true, reg.MatchString(symbolChars))
}