mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-15 10:12:29 +08:00
fix: fix issue #168
This commit is contained in:
@@ -121,40 +121,48 @@ func UpperSnakeCase(s string) string {
|
|||||||
// Before returns the substring of the source string up to the first occurrence of the specified string.
|
// Before returns the substring of the source string up to the first occurrence of the specified string.
|
||||||
// Play: https://go.dev/play/p/JAWTZDS4F5w
|
// Play: https://go.dev/play/p/JAWTZDS4F5w
|
||||||
func Before(s, char string) string {
|
func Before(s, char string) string {
|
||||||
if s == "" || char == "" {
|
i := strings.Index(s, char)
|
||||||
|
|
||||||
|
if s == "" || char == "" || i == -1 {
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
i := strings.Index(s, char)
|
|
||||||
return s[0:i]
|
return s[0:i]
|
||||||
}
|
}
|
||||||
|
|
||||||
// BeforeLast returns the substring of the source string up to the last occurrence of the specified string.
|
// BeforeLast returns the substring of the source string up to the last occurrence of the specified string.
|
||||||
// Play: https://go.dev/play/p/pJfXXAoG_Te
|
// Play: https://go.dev/play/p/pJfXXAoG_Te
|
||||||
func BeforeLast(s, char string) string {
|
func BeforeLast(s, char string) string {
|
||||||
if s == "" || char == "" {
|
i := strings.LastIndex(s, char)
|
||||||
|
|
||||||
|
if s == "" || char == "" || i == -1 {
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
i := strings.LastIndex(s, char)
|
|
||||||
return s[0:i]
|
return s[0:i]
|
||||||
}
|
}
|
||||||
|
|
||||||
// After returns the substring after the first occurrence of a specified string in the source string.
|
// After returns the substring after the first occurrence of a specified string in the source string.
|
||||||
// Play: https://go.dev/play/p/RbCOQqCDA7m
|
// Play: https://go.dev/play/p/RbCOQqCDA7m
|
||||||
func After(s, char string) string {
|
func After(s, char string) string {
|
||||||
if s == "" || char == "" {
|
i := strings.Index(s, char)
|
||||||
|
|
||||||
|
if s == "" || char == "" || i == -1 {
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
i := strings.Index(s, char)
|
|
||||||
return s[i+len(char):]
|
return s[i+len(char):]
|
||||||
}
|
}
|
||||||
|
|
||||||
// AfterLast returns the substring after the last occurrence of a specified string in the source string.
|
// AfterLast returns the substring after the last occurrence of a specified string in the source string.
|
||||||
// Play: https://go.dev/play/p/1TegARrb8Yn
|
// Play: https://go.dev/play/p/1TegARrb8Yn
|
||||||
func AfterLast(s, char string) string {
|
func AfterLast(s, char string) string {
|
||||||
if s == "" || char == "" {
|
i := strings.LastIndex(s, char)
|
||||||
|
|
||||||
|
if s == "" || char == "" || i == -1 {
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
i := strings.LastIndex(s, char)
|
|
||||||
return s[i+len(char):]
|
return s[i+len(char):]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -230,6 +230,8 @@ func TestBefore(t *testing.T) {
|
|||||||
|
|
||||||
assert.Equal("lancet", Before("lancet", ""))
|
assert.Equal("lancet", Before("lancet", ""))
|
||||||
assert.Equal("", Before("lancet", "lancet"))
|
assert.Equal("", Before("lancet", "lancet"))
|
||||||
|
assert.Equal("lancet", Before("lancet", "abcdef"))
|
||||||
|
|
||||||
assert.Equal("github.com", Before("github.com/test/lancet", "/"))
|
assert.Equal("github.com", Before("github.com/test/lancet", "/"))
|
||||||
assert.Equal("github.com/", Before("github.com/test/lancet", "test"))
|
assert.Equal("github.com/", Before("github.com/test/lancet", "test"))
|
||||||
}
|
}
|
||||||
@@ -240,10 +242,10 @@ func TestBeforeLast(t *testing.T) {
|
|||||||
assert := internal.NewAssert(t, "TestBeforeLast")
|
assert := internal.NewAssert(t, "TestBeforeLast")
|
||||||
|
|
||||||
assert.Equal("lancet", BeforeLast("lancet", ""))
|
assert.Equal("lancet", BeforeLast("lancet", ""))
|
||||||
|
assert.Equal("lancet", BeforeLast("lancet", "abcdef"))
|
||||||
|
|
||||||
assert.Equal("github.com/test", BeforeLast("github.com/test/lancet", "/"))
|
assert.Equal("github.com/test", BeforeLast("github.com/test/lancet", "/"))
|
||||||
assert.Equal("github.com/test/", BeforeLast("github.com/test/test/lancet", "test"))
|
assert.Equal("github.com/test/", BeforeLast("github.com/test/test/lancet", "test"))
|
||||||
|
|
||||||
assert.NotEqual("github.com/", BeforeLast("github.com/test/test/lancet", "test"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAfter(t *testing.T) {
|
func TestAfter(t *testing.T) {
|
||||||
@@ -255,6 +257,8 @@ func TestAfter(t *testing.T) {
|
|||||||
assert.Equal("", After("lancet", "lancet"))
|
assert.Equal("", After("lancet", "lancet"))
|
||||||
assert.Equal("test/lancet", After("github.com/test/lancet", "/"))
|
assert.Equal("test/lancet", After("github.com/test/lancet", "/"))
|
||||||
assert.Equal("/lancet", After("github.com/test/lancet", "test"))
|
assert.Equal("/lancet", After("github.com/test/lancet", "test"))
|
||||||
|
|
||||||
|
assert.Equal("lancet", After("lancet", "abcdef"))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAfterLast(t *testing.T) {
|
func TestAfterLast(t *testing.T) {
|
||||||
@@ -266,8 +270,7 @@ func TestAfterLast(t *testing.T) {
|
|||||||
assert.Equal("lancet", AfterLast("github.com/test/lancet", "/"))
|
assert.Equal("lancet", AfterLast("github.com/test/lancet", "/"))
|
||||||
assert.Equal("/lancet", AfterLast("github.com/test/lancet", "test"))
|
assert.Equal("/lancet", AfterLast("github.com/test/lancet", "test"))
|
||||||
assert.Equal("/lancet", AfterLast("github.com/test/test/lancet", "test"))
|
assert.Equal("/lancet", AfterLast("github.com/test/test/lancet", "test"))
|
||||||
|
assert.Equal("lancet", AfterLast("lancet", "abcdef"))
|
||||||
assert.NotEqual("/test/lancet", AfterLast("github.com/test/test/lancet", "test"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestIsString(t *testing.T) {
|
func TestIsString(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user