1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-17 19:22:28 +08:00

doc: update for release v2.3.5

This commit is contained in:
dudaodong
2025-03-06 20:02:33 +08:00
parent 90a3b87b67
commit 3696213e5d
6 changed files with 192 additions and 62 deletions

View File

@@ -506,9 +506,24 @@ import "github.com/duke-git/lancet/v2/datetime"
- **<big>AddMinute</big>** : add or sub day to the time. - **<big>AddMinute</big>** : add or sub day to the time.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddMinute)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddMinute)]
[[play](https://go.dev/play/p/nT1heB1KUUK)] [[play](https://go.dev/play/p/nT1heB1KUUK)]
- **<big>AddWeek</big>** : add or sub week to time.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddWeek)]
[[play](https://go.dev/play/p/todo)]
- **<big>AddMonth</big>** : add or sub months to time.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddMonth)]
[[play](https://go.dev/play/p/todo)]
- **<big>AddYear</big>** : add or sub year to the time. - **<big>AddYear</big>** : add or sub year to the time.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddYear)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddYear)]
[[play](https://go.dev/play/p/MqW2ujnBx10)] [[play](https://go.dev/play/p/MqW2ujnBx10)]
- **<big>AddDaySafe</big>** : add or sub days to the time and ensure that the returned date does not exceed the valid date of the target year and month.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddDaySafe)]
[[play](https://go.dev/play/p/todo)]
- **<big>AddMonthSafe</big>** : add or sub months to the time and ensure that the returned date does not exceed the valid date of the target year and month.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddMonthSafe)]
[[play](https://go.dev/play/p/todo)]
- **<big>AddYearSafe</big>** : Add or sub years to the time and ensure that the returned date does not exceed the valid date of the target year and month.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#AddYearSafe)]
[[play](https://go.dev/play/p/todo)]
- **<big>BeginOfMinute</big>** : return the date time at the begin of minute of specific date. - **<big>BeginOfMinute</big>** : return the date time at the begin of minute of specific date.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#BeginOfMinute)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/datetime.md#BeginOfMinute)]
[[play](https://go.dev/play/p/ieOLVJ9CiFT)] [[play](https://go.dev/play/p/ieOLVJ9CiFT)]
@@ -1561,6 +1576,9 @@ import "github.com/duke-git/lancet/v2/slice"
- **<big>Shuffle</big>** : shuffle the slice. - **<big>Shuffle</big>** : shuffle the slice.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/slice.md#Shuffle)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/slice.md#Shuffle)]
[[play](https://go.dev/play/p/YHvhnWGU3Ge)] [[play](https://go.dev/play/p/YHvhnWGU3Ge)]
- **<big>ShuffleCopy</big>** : return a new slice with elements shuffled.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/slice.md#ShuffleCopy)]
[[play](todo)]
- **<big>IsAscending</big>** : Checks if a slice is ascending order. - **<big>IsAscending</big>** : Checks if a slice is ascending order.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/slice.md#IsAscending)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/slice.md#IsAscending)]
[[play](https://go.dev/play/p/9CtsFjet4SH)] [[play](https://go.dev/play/p/9CtsFjet4SH)]
@@ -1707,6 +1725,9 @@ import "github.com/duke-git/lancet/v2/stream"
- **<big>Reverse</big>** : returns a stream whose elements are reverse order of given stream. - **<big>Reverse</big>** : returns a stream whose elements are reverse order of given stream.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/stream.md#Reverse)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/stream.md#Reverse)]
[[play](https://go.dev/play/p/A8_zkJnLHm4)] [[play](https://go.dev/play/p/A8_zkJnLHm4)]
- **<big>ReverseCopy</big>** : returns a new slice of element order is reversed to the given slice.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/stream.md#ReverseCopy)]
[[play](todo)]
- **<big>Range</big>** : returns a stream whose elements are in the range from start(included) to end(excluded) original stream. - **<big>Range</big>** : returns a stream whose elements are in the range from start(included) to end(excluded) original stream.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/stream.md#Range)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/stream.md#Range)]
[[play](https://go.dev/play/p/indZY5V2f4j)] [[play](https://go.dev/play/p/indZY5V2f4j)]
@@ -1936,7 +1957,9 @@ import "github.com/duke-git/lancet/v2/strutil"
- **<big>ExtractContent</big>** : extracts the content between the start and end strings in the source string. - **<big>ExtractContent</big>** : extracts the content between the start and end strings in the source string.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/strutil.md#ExtractContent)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/strutil.md#ExtractContent)]
[[play](https://go.dev/play/p/Ay9UIk7Rum9)] [[play](https://go.dev/play/p/Ay9UIk7Rum9)]
- **<big>FindAllOccurrences</big>** : Returns the positions of all occurrences of a substring in a string.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/strutil.md#FindAllOccurrences)]
[[play](todo)]
<h3 id="system"> 22. System package contain some functions about os, runtime, shell command. &nbsp; &nbsp; &nbsp; &nbsp;<a href="#index">index</a></h3> <h3 id="system"> 22. System package contain some functions about os, runtime, shell command. &nbsp; &nbsp; &nbsp; &nbsp;<a href="#index">index</a></h3>
@@ -2190,6 +2213,9 @@ import "github.com/duke-git/lancet/v2/validator"
- **<big>IsIpV6</big>** : check if the string is ipv6. - **<big>IsIpV6</big>** : check if the string is ipv6.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsIpV6)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsIpV6)]
[[play](https://go.dev/play/p/AHA0r0AzIdC)] [[play](https://go.dev/play/p/AHA0r0AzIdC)]
- **<big>IsIpPort</big>** : check if the string is ip:port.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsIpPort)]
[[play](todo)]
- **<big>IsStrongPassword</big>** : check if the string is strong password. - **<big>IsStrongPassword</big>** : check if the string is strong password.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsStrongPassword)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsStrongPassword)]
[[play](https://go.dev/play/p/QHdVcSQ3uDg)] [[play](https://go.dev/play/p/QHdVcSQ3uDg)]

View File

@@ -507,9 +507,24 @@ import "github.com/duke-git/lancet/v2/datetime"
- **<big>AddMinute</big>** : 将日期加/减分钟数。 - **<big>AddMinute</big>** : 将日期加/减分钟数。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddMinute)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddMinute)]
[[play](https://go.dev/play/p/nT1heB1KUUK)] [[play](https://go.dev/play/p/nT1heB1KUUK)]
- **<big>AddWeek</big>** : 将日期加/减星期数.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddWeek)]
[[play](https://go.dev/play/p/todo)]
- **<big>AddMonth</big>** : 将日期加/减月数.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddMonth)]
[[play](https://go.dev/play/p/todo)]
- **<big>AddYear</big>** : 将日期加/减分年数。 - **<big>AddYear</big>** : 将日期加/减分年数。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddYear)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddYear)]
[[play](https://go.dev/play/p/MqW2ujnBx10)] [[play](https://go.dev/play/p/MqW2ujnBx10)]
- **<big>AddDaySafe</big>** : 增加/减少指定的天数,并确保日期是有效日期。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddDaySafe)]
[[play](https://go.dev/play/p/todo)]
- **<big>AddMonthSafe</big>** : 增加/减少指定的月份,并确保日期是有效日期。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddMonthSafe)]
[[play](https://go.dev/play/p/todo)]
- **<big>AddYearSafe</big>** : 增加/减少指定的年份,并确保日期是有效日期。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#AddYearSafe)]
[[play](https://go.dev/play/p/todo)]
- **<big>BeginOfMinute</big>** : 返回指定时间的分钟开始时间。 - **<big>BeginOfMinute</big>** : 返回指定时间的分钟开始时间。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#BeginOfMinute)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/datetime.md#BeginOfMinute)]
[[play](https://go.dev/play/p/ieOLVJ9CiFT)] [[play](https://go.dev/play/p/ieOLVJ9CiFT)]
@@ -1535,6 +1550,9 @@ import "github.com/duke-git/lancet/v2/slice"
- **<big>Reverse</big>** : 反转切片中的元素顺序。 - **<big>Reverse</big>** : 反转切片中的元素顺序。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#Reverse)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#Reverse)]
[[play](https://go.dev/play/p/8uI8f1lwNrQ)] [[play](https://go.dev/play/p/8uI8f1lwNrQ)]
- **<big>ReverseCopy</big>** : 反转切片中的元素顺序, 不改变原slice。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/stream.md#ReverseCopy)]
[[play](todo)]
- **<big>Reduce<sup>deprecated</sup></big>** : 将切片中的元素依次运行 iteratee 函数,返回运行结果。(废弃:建议使用 ReduceBy) - **<big>Reduce<sup>deprecated</sup></big>** : 将切片中的元素依次运行 iteratee 函数,返回运行结果。(废弃:建议使用 ReduceBy)
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#Reduce)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#Reduce)]
[[play](https://go.dev/play/p/_RfXJJWIsIm)] [[play](https://go.dev/play/p/_RfXJJWIsIm)]
@@ -1559,6 +1577,9 @@ import "github.com/duke-git/lancet/v2/slice"
- **<big>Shuffle</big>** : 随机打乱切片中的元素顺序。 - **<big>Shuffle</big>** : 随机打乱切片中的元素顺序。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#Shuffle)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#Shuffle)]
[[play](https://go.dev/play/p/YHvhnWGU3Ge)] [[play](https://go.dev/play/p/YHvhnWGU3Ge)]
- **<big>ShuffleCopy</big>** : 随机打乱切片中的元素顺序, 不改变原切片。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#ShuffleCopy)]
[[play](todo)]
- **<big>IsAscending</big>** : 检查切片元素是否按升序排列。 - **<big>IsAscending</big>** : 检查切片元素是否按升序排列。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#IsAscending)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#IsAscending)]
[[play](https://go.dev/play/p/9CtsFjet4SH)] [[play](https://go.dev/play/p/9CtsFjet4SH)]
@@ -1936,6 +1957,10 @@ import "github.com/duke-git/lancet/v2/strutil"
- **<big>ExtractContent</big>** : 提取两个标记之间的内容。 - **<big>ExtractContent</big>** : 提取两个标记之间的内容。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/strutil.md#ExtractContent)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/strutil.md#ExtractContent)]
[[play](https://go.dev/play/p/Ay9UIk7Rum9)] [[play](https://go.dev/play/p/Ay9UIk7Rum9)]
- **<big>FindAllOccurrences</big>** : 返回子字符串在字符串中所有出现的位置。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/strutil.md#FindAllOccurrences)]
[[play](todo)]
<h3 id="system"> 23. system 包含 os, runtime, shell command 的相关函数。&nbsp; &nbsp; &nbsp; &nbsp;<a href="#index">回到目录</a></h3> <h3 id="system"> 23. system 包含 os, runtime, shell command 的相关函数。&nbsp; &nbsp; &nbsp; &nbsp;<a href="#index">回到目录</a></h3>
@@ -2190,6 +2215,9 @@ import "github.com/duke-git/lancet/v2/validator"
- **<big>IsIpV6</big>** : 验证字符串是否是ipv6地址。 - **<big>IsIpV6</big>** : 验证字符串是否是ipv6地址。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsIpV6)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsIpV6)]
[[play](https://go.dev/play/p/AHA0r0AzIdC)] [[play](https://go.dev/play/p/AHA0r0AzIdC)]
- **<big>IsIpPort</big>** : 检查字符串是否是ip:port格式。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsIpPort)]
[[play](todo)]
- **<big>IsStrongPassword</big>** : 验证字符串是否是强密码:(字母+数字+特殊字符)。 - **<big>IsStrongPassword</big>** : 验证字符串是否是强密码:(字母+数字+特殊字符)。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsStrongPassword)] [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsStrongPassword)]
[[play](https://go.dev/play/p/QHdVcSQ3uDg)] [[play](https://go.dev/play/p/QHdVcSQ3uDg)]

View File

@@ -1,51 +1,51 @@
-----BEGIN rsa private key----- -----BEGIN rsa private key-----
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
-----END rsa private key----- -----END rsa private key-----

View File

@@ -1,14 +1,14 @@
-----BEGIN rsa public key----- -----BEGIN rsa public key-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA77XqVTCS3dmAd5FnAvrT MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqX8BaBwlCUfe+J0D+bkR
PcXrVetPzJeksmqqu4EjFv6Fe4NFdZQIWtkjgJQ4v27KpZXUL2ExkJhodrfRegHF Nky0/6aBVhxeeoIJY4FFdgewnloXLc7vxRVgwpUvx1n/FkvulPFCOT65zDSV2kpg
gq9xiy822umUu6bCyBva1YxFQPevKqgPLY7n6wB3PJRnwnSszQCsUDyBC8JnqbeL m3IZ8Y+gTlRg1S5Cu7QEsirlENhcH4NMewpDWiTosS5G6+H8P5stf+do0u4TAoYi
41qcRiBAjXSh0BFMERSl3F0AViGkVCRCmKuc9612Gi6iuw11cFbLUPqLL+YNk+NI fmE3JjEI2ewchfSGqy3YIzunVVOnYSwAETOjXttLOYs7LLHQa2REo4fDaAVKebUv
gW398nYUUNeacMG12h02n3YJ8HD5Q16PhdJ7Z93aAsDgKzl7dT5tyyv3w2p2wOse +aA4ldXvPlK16Nxf2JESNh4oeHxUgBvcxkQDQDet7p7G30m/mNfVNeZJi5uOwnO1
1GPMfQffZQA+gXmw7+GJImJu3DtWKY0cQqzO1Wsa5t+YxMf0A12AYGJa+Y0aPgr8 KIomAT8UosPoANpOXqtq1a4k7UdrIOJT6cXdFJ0byOdAfi5PlT0qOP4LtMs65Skm
Vl8LY++NdujnazwsgzTJm94uuqHZiv+mtsYIpkLbuMWmBce05G8MtS0O9IabgBLx L3QoY9lvX2jBlfjNiOc5uJtcvvYad2AMxqaeoig/xRYoUu0PNtbYjuzFkgYw7Tw3
rbUQvYk9Myv/ff4BgWkO06SAUq7GGUn0cI+EglyYYJCgeeBSQid7daQ8M4Idb9ve qcEOu9kZeTPUMQJoix54CgekBxeBjxCKGJ0UPTAfcEzfhMqMWqPKCFcV8v50/bbs
Go2f7KJqHecRf3fzRwlbMMjoo0Nw19FAx/tQm1LTg1NxCaheAFI1UzUTCUAZE/X9 FTNksdJLEkl9Fv8in01YNIYid8OV0vYHt8liu7u76sZ59fpJJwOqboAqg58IUFXP
QwviTuHXTnfjd0wfxeVaJRMyK9efOJuALAit9rtxyfm1fPRztvPwIrpy/wMUQ+7i iwrNrVRUwRYWbZcDfcQ/hUZDNbJMDRSfK1HdyUlWxuhqf/GQ8RXvD/vuUy1ZHR+2
8xAEPWa+kXFtVLTqEwGnX3QYZf/NGJ/9RZmtpcxgpHIJ6OEyqVUYKKeU7R3uW7i3 IfHzoNCF0qqIFta6YWQsyVjRJe+v8IjiPAdpn4BCGB0l4W0oKJMDcZmJq6SjFFQm
pv3au9lZ5Id1AvAqQWG8TvkCAwEAAQ== 7pdUXDkWbhDQ4GStvpUrZRsCAwEAAQ==
-----END rsa public key----- -----END rsa public key-----

View File

@@ -49,6 +49,7 @@ import (
- [IsIp](#IsIp) - [IsIp](#IsIp)
- [IsIpV4](#IsIpV4) - [IsIpV4](#IsIpV4)
- [IsIpV6](#IsIpV6) - [IsIpV6](#IsIpV6)
- [IsIpPort](#IsIpPort)
- [IsStrongPassword](#IsStrongPassword) - [IsStrongPassword](#IsStrongPassword)
- [IsUrl](#IsUrl) - [IsUrl](#IsUrl)
- [IsWeakPassword](#IsWeakPassword) - [IsWeakPassword](#IsWeakPassword)
@@ -990,6 +991,43 @@ func main() {
} }
``` ```
### <span id="IsIpPort">IsIpPort</span>
<p>检查字符串是否是ip:port格式。</p>
<b>函数签名:</b>
```go
func IsIpPort(str string) bool
```
<b>示例:<span style="float:right;display:inline-block">[运行](todo)</span></b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/validator"
)
func main() {
result1 := validator.IsIpPort("127.0.0.1:8080")
result2 := validator.IsIpPort("[0:0:0:0:0:0:0:1]:8080")
result3 := validator.IsIpPort(":8080")
result4 := validator.IsIpPort("::0:0:0:0:")
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
// Output:
// true
// true
// false
// false
}
```
### <span id="IsStrongPassword">IsStrongPassword</span> ### <span id="IsStrongPassword">IsStrongPassword</span>
<p>验证字符串是否是强密码:(alpha(lower+upper) + number + special chars(!@#$%^&*()?&gt&lt))。</p> <p>验证字符串是否是强密码:(alpha(lower+upper) + number + special chars(!@#$%^&*()?&gt&lt))。</p>

View File

@@ -49,6 +49,7 @@ import (
- [IsIp](#IsIp) - [IsIp](#IsIp)
- [IsIpV4](#IsIpV4) - [IsIpV4](#IsIpV4)
- [IsIpV6](#IsIpV6) - [IsIpV6](#IsIpV6)
- [IsIpPort](#IsIpPort)
- [IsStrongPassword](#IsStrongPassword) - [IsStrongPassword](#IsStrongPassword)
- [IsUrl](#IsUrl) - [IsUrl](#IsUrl)
- [IsWeakPassword](#IsWeakPassword) - [IsWeakPassword](#IsWeakPassword)
@@ -992,6 +993,43 @@ func main() {
} }
``` ```
### <span id="IsIpPort">IsIpPort</span>
<p>Check if the string is ip:port</p>
<b>Signature:</b>
```go
func IsIpPort(str string) bool
```
<b>Example:<span style="float:right;display:inline-block">[Run](todo)</span></b>
```go
import (
"fmt"
"github.com/duke-git/lancet/v2/validator"
)
func main() {
result1 := validator.IsIpPort("127.0.0.1:8080")
result2 := validator.IsIpPort("[0:0:0:0:0:0:0:1]:8080")
result3 := validator.IsIpPort(":8080")
result4 := validator.IsIpPort("::0:0:0:0:")
fmt.Println(result1)
fmt.Println(result2)
fmt.Println(result3)
fmt.Println(result4)
// Output:
// true
// true
// false
// false
}
```
### <span id="IsStrongPassword">IsStrongPassword</span> ### <span id="IsStrongPassword">IsStrongPassword</span>
<p>Check if the string is strong password (alpha(lower+upper) + number + special chars(!@#$%^&*()?gt&lt)).</p> <p>Check if the string is strong password (alpha(lower+upper) + number + special chars(!@#$%^&*()?gt&lt)).</p>