mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-16 18:52:27 +08:00
clean code
This commit is contained in:
@@ -12,8 +12,6 @@ import (
|
|||||||
|
|
||||||
// CamelCase covert string to camelCase string.
|
// CamelCase covert string to camelCase string.
|
||||||
func CamelCase(s string) string {
|
func CamelCase(s string) string {
|
||||||
s = strings.ReplaceAll(s, " ", "")
|
|
||||||
|
|
||||||
var runes [][]rune
|
var runes [][]rune
|
||||||
lastCharType := 0
|
lastCharType := 0
|
||||||
charType := 0
|
charType := 0
|
||||||
@@ -39,8 +37,6 @@ func CamelCase(s string) string {
|
|||||||
lastCharType = charType
|
lastCharType = charType
|
||||||
}
|
}
|
||||||
|
|
||||||
result := ""
|
|
||||||
|
|
||||||
for i := 0; i < len(runes)-1; i++ {
|
for i := 0; i < len(runes)-1; i++ {
|
||||||
if unicode.IsUpper(runes[i][0]) && unicode.IsLower(runes[i+1][0]) {
|
if unicode.IsUpper(runes[i][0]) && unicode.IsLower(runes[i+1][0]) {
|
||||||
runes[i+1] = append([]rune{runes[i][len(runes[i])-1]}, runes[i+1]...)
|
runes[i+1] = append([]rune{runes[i][len(runes[i])-1]}, runes[i+1]...)
|
||||||
@@ -59,6 +55,8 @@ func CamelCase(s string) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result := ""
|
||||||
|
|
||||||
// capitalize
|
// capitalize
|
||||||
for i, r := range filterRunes {
|
for i, r := range filterRunes {
|
||||||
if i == 0 {
|
if i == 0 {
|
||||||
@@ -160,14 +158,10 @@ func PadStart(source string, size int, padStr string) string {
|
|||||||
|
|
||||||
// KebabCase covert string to kebab-case
|
// KebabCase covert string to kebab-case
|
||||||
func KebabCase(s string) string {
|
func KebabCase(s string) string {
|
||||||
if len(s) == 0 {
|
re := regexp.MustCompile(`[\W|_]+`)
|
||||||
return ""
|
space := " "
|
||||||
}
|
match := re.ReplaceAllString(s, space)
|
||||||
|
rs := strings.Split(match, space)
|
||||||
regex := regexp.MustCompile(`[\W|_]+`)
|
|
||||||
blankSpace := " "
|
|
||||||
match := regex.ReplaceAllString(s, blankSpace)
|
|
||||||
rs := strings.Split(match, blankSpace)
|
|
||||||
|
|
||||||
var result []string
|
var result []string
|
||||||
for _, v := range rs {
|
for _, v := range rs {
|
||||||
@@ -175,6 +169,9 @@ func KebabCase(s string) string {
|
|||||||
if len(splitWords) > 0 {
|
if len(splitWords) > 0 {
|
||||||
result = append(result, splitWords...)
|
result = append(result, splitWords...)
|
||||||
}
|
}
|
||||||
|
// if v != "" {
|
||||||
|
// result = append(result, strings.ToLower(v))
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
return strings.Join(result, "-")
|
return strings.Join(result, "-")
|
||||||
@@ -182,14 +179,10 @@ func KebabCase(s string) string {
|
|||||||
|
|
||||||
// SnakeCase covert string to snake_case
|
// SnakeCase covert string to snake_case
|
||||||
func SnakeCase(s string) string {
|
func SnakeCase(s string) string {
|
||||||
if len(s) == 0 {
|
re := regexp.MustCompile(`[\W|_]+`)
|
||||||
return ""
|
space := " "
|
||||||
}
|
match := re.ReplaceAllString(s, space)
|
||||||
|
rs := strings.Split(match, space)
|
||||||
regex := regexp.MustCompile(`[\W|_]+`)
|
|
||||||
blankSpace := " "
|
|
||||||
match := regex.ReplaceAllString(s, blankSpace)
|
|
||||||
rs := strings.Split(match, blankSpace)
|
|
||||||
|
|
||||||
var result []string
|
var result []string
|
||||||
for _, v := range rs {
|
for _, v := range rs {
|
||||||
|
|||||||
@@ -48,24 +48,44 @@ func TestCapitalize(t *testing.T) {
|
|||||||
func TestKebabCase(t *testing.T) {
|
func TestKebabCase(t *testing.T) {
|
||||||
assert := internal.NewAssert(t, "TestKebabCase")
|
assert := internal.NewAssert(t, "TestKebabCase")
|
||||||
|
|
||||||
assert.Equal("foo-bar", KebabCase("Foo Bar-"))
|
cases := map[string]string{
|
||||||
assert.Equal("foo-bar", KebabCase("foo_Bar"))
|
"Foo Bar-": "foo-bar",
|
||||||
assert.Equal("foo-bar", KebabCase("fooBar"))
|
"foo_Bar": "foo-bar",
|
||||||
assert.Equal("f-o-o-b-a-r", KebabCase("__FOO_BAR__"))
|
"fooBar": "foo-bar",
|
||||||
|
"FOOBAR": "f-o-o-b-a-r",
|
||||||
|
"FOO_BAR": "f-o-o-b-a-r",
|
||||||
|
"__FOO_BAR__": "f-o-o-b-a-r",
|
||||||
|
"$foo@Bar": "foo-bar",
|
||||||
|
" $#$Foo 22 bar ": "foo-22-bar",
|
||||||
|
}
|
||||||
|
|
||||||
assert.NotEqual("foo_bar", KebabCase("fooBar"))
|
for k, v := range cases {
|
||||||
|
assert.Equal(v, KebabCase(k))
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Equal("", KebabCase(""))
|
||||||
|
|
||||||
|
// assert.Equal("foo-1-1bar", KebabCase("Foo-#1😄$_%^&*(1bar"))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSnakeCase(t *testing.T) {
|
func TestSnakeCase(t *testing.T) {
|
||||||
assert := internal.NewAssert(t, "TestSnakeCase")
|
assert := internal.NewAssert(t, "TestSnakeCase")
|
||||||
|
|
||||||
assert.Equal("foo_bar", SnakeCase("Foo Bar-"))
|
cases := map[string]string{
|
||||||
assert.Equal("foo_bar", SnakeCase("foo_Bar"))
|
"Foo Bar-": "foo_bar",
|
||||||
assert.Equal("foo_bar", SnakeCase("fooBar"))
|
"foo_Bar": "foo_bar",
|
||||||
assert.Equal("f_o_o_b_a_r", SnakeCase("__FOO_BAR__"))
|
"fooBar": "foo_bar",
|
||||||
assert.Equal("a_bbc_s_a_b_b_c", SnakeCase("aBbc-s$@a&%_B.B^C"))
|
"__FOO_BAR__": "f_o_o_b_a_r",
|
||||||
|
"$foo@Bar": "foo_bar",
|
||||||
|
" $#$Foo 22 bar ": "foo_22_bar",
|
||||||
|
"aBbc-s$@a&%_B.B^C": "a_bbc_s_a_b_b_c",
|
||||||
|
}
|
||||||
|
|
||||||
assert.NotEqual("foo-bar", SnakeCase("foo_Bar"))
|
for k, v := range cases {
|
||||||
|
assert.Equal(v, SnakeCase(k))
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Equal("", SnakeCase(""))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUpperFirst(t *testing.T) {
|
func TestUpperFirst(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user