mirror of
https://github.com/duke-git/lancet.git
synced 2026-03-01 00:35:28 +08:00
feat: add ContainsAll and ContainsAny
This commit is contained in:
@@ -28,6 +28,8 @@ import (
|
|||||||
- [BeforeLast](#BeforeLast)
|
- [BeforeLast](#BeforeLast)
|
||||||
- [CamelCase](#CamelCase)
|
- [CamelCase](#CamelCase)
|
||||||
- [Capitalize](#Capitalize)
|
- [Capitalize](#Capitalize)
|
||||||
|
- [ContainsAll](#ContainsAll)
|
||||||
|
- [ContainsAny](#ContainsAny)
|
||||||
- [IsString](#IsString)
|
- [IsString](#IsString)
|
||||||
- [KebabCase](#KebabCase)
|
- [KebabCase](#KebabCase)
|
||||||
- [UpperKebabCase](#UpperKebabCase)
|
- [UpperKebabCase](#UpperKebabCase)
|
||||||
@@ -1168,3 +1170,73 @@ func main() {
|
|||||||
// 1324265****
|
// 1324265****
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### <span id="ContainsAll">ContainsAll</span>
|
||||||
|
|
||||||
|
<p>Return true if target string contains all the substrings.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func ContainsAll(str string, substrs []string) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/strutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
str := "hello world"
|
||||||
|
|
||||||
|
result1 := strutil.ContainsAll(str, []string{"hello", "world"})
|
||||||
|
result2 := strutil.ContainsAll(str, []string{"hello", "abc"})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="ContainsAny">ContainsAny</span>
|
||||||
|
|
||||||
|
<p>Return true if target string contains any one of the substrings.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func ContainsAny(str string, substrs []string) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/strutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
str := "hello world"
|
||||||
|
|
||||||
|
result1 := strutil.ContainsAny(str, []string{"hello", "world"})
|
||||||
|
result2 := strutil.ContainsAny(str, []string{"hello", "abc"})
|
||||||
|
result3 := strutil.ContainsAny(str, []string{"123", "abc"})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import (
|
|||||||
- [Before](#Before)
|
- [Before](#Before)
|
||||||
- [BeforeLast](#BeforeLast)
|
- [BeforeLast](#BeforeLast)
|
||||||
- [CamelCase](#CamelCase)
|
- [CamelCase](#CamelCase)
|
||||||
|
- [ContainsAll](#ContainsAll)
|
||||||
|
- [ContainsAny](#ContainsAny)
|
||||||
- [Capitalize](#Capitalize)
|
- [Capitalize](#Capitalize)
|
||||||
- [IsString](#IsString)
|
- [IsString](#IsString)
|
||||||
- [KebabCase](#KebabCase)
|
- [KebabCase](#KebabCase)
|
||||||
@@ -1201,3 +1203,72 @@ func main() {
|
|||||||
// 1324265****
|
// 1324265****
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### <span id="ContainsAll">ContainsAll</span>
|
||||||
|
|
||||||
|
<p>判断字符串是否包括全部给定的子字符串切片。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func ContainsAll(str string, substrs []string) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/strutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
str := "hello world"
|
||||||
|
|
||||||
|
result1 := strutil.ContainsAll(str, []string{"hello", "world"})
|
||||||
|
result2 := strutil.ContainsAll(str, []string{"hello", "abc"})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### <span id="ContainsAny">ContainsAny</span>
|
||||||
|
|
||||||
|
<p>判断字符串是否包括给定的子字符串切片中任意一个子字符串。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func ContainsAny(str string, substrs []string) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/strutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
str := "hello world"
|
||||||
|
|
||||||
|
result1 := strutil.ContainsAny(str, []string{"hello", "world"})
|
||||||
|
result2 := strutil.ContainsAny(str, []string{"hello", "abc"})
|
||||||
|
result3 := strutil.ContainsAny(str, []string{"123", "abc"})
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|||||||
@@ -481,3 +481,25 @@ func HideString(origin string, start, end int, replaceChar string) string {
|
|||||||
|
|
||||||
return startStr + replaceStr + endStr
|
return startStr + replaceStr + endStr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContainsAll return true if target string contains all the substrs.
|
||||||
|
func ContainsAll(str string, substrs []string) bool {
|
||||||
|
for _, v := range substrs {
|
||||||
|
if !strings.Contains(str, v) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContainsAny return true if target string contains any one of the substrs.
|
||||||
|
func ContainsAny(str string, substrs []string) bool {
|
||||||
|
for _, v := range substrs {
|
||||||
|
if strings.Contains(str, v) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|||||||
@@ -439,3 +439,19 @@ func TestHideString(t *testing.T) {
|
|||||||
assert.Equal("1324265****", HideString(str, 7, 100, "*"))
|
assert.Equal("1324265****", HideString(str, 7, 100, "*"))
|
||||||
assert.Equal("13242658976", HideString(str, 100, 100, "*"))
|
assert.Equal("13242658976", HideString(str, 100, 100, "*"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestContainsAll(t *testing.T) {
|
||||||
|
assert := internal.NewAssert(t, "TestContainsAll")
|
||||||
|
|
||||||
|
assert.Equal(true, ContainsAll("hello world", []string{"hello", "world"}))
|
||||||
|
assert.Equal(true, ContainsAll("hello world", []string{""}))
|
||||||
|
assert.Equal(false, ContainsAll("hello world", []string{"hello", "abc"}))
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestContainsAny(t *testing.T) {
|
||||||
|
assert := internal.NewAssert(t, "TestContainsAny")
|
||||||
|
|
||||||
|
assert.Equal(true, ContainsAny("hello world", []string{"hello", "world"}))
|
||||||
|
assert.Equal(true, ContainsAny("hello world", []string{"hello", "abc"}))
|
||||||
|
assert.Equal(false, ContainsAny("hello world", []string{"123", "abc"}))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user