From b698fec50f4b225f1c9729f4c6c0f06c016df2ec Mon Sep 17 00:00:00 2001
From: dudaodong
Date: Mon, 11 Sep 2023 15:59:35 +0800
Subject: [PATCH] doc: add go playground demo
---
README.md | 30 ++++++++++
README_zh-CN.md | 42 +++++++++++---
docs/api/overview.md | 2 +-
docs/api/packages/slice.md | 2 +-
docs/api/packages/validator.md | 91 +++++++++++++++----------------
docs/en/api/overview.md | 2 +-
docs/en/api/packages/slice.md | 3 +-
docs/en/api/packages/validator.md | 84 ++++++++++++++--------------
slice/slice.go | 2 +-
validator/validator.go | 20 +++----
10 files changed, 166 insertions(+), 112 deletions(-)
diff --git a/README.md b/README.md
index e499a9d..605b8ed 100644
--- a/README.md
+++ b/README.md
@@ -1325,6 +1325,9 @@ import "github.com/duke-git/lancet/v2/slice"
- **Join** : join the slice item with specify separator.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/slice.md#Join)]
[[play](https://go.dev/play/p/huKzqwNDD7V)]
+- **Partition** : partition all slice elements with the evaluation of the given predicate functions.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/slice.md#Partition)]
+ [[play](https://go.dev/play/p/lkQ3Ri2NQhV)]
19. Stream package implements a sequence of elements supporting sequential and operations. this package is an experiment to explore if stream in go can work as the way java does. its function is very limited. index
@@ -1826,6 +1829,33 @@ import "github.com/duke-git/lancet/v2/validator"
- **IsPrintable** : checks if string is all printable chars.
[[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsPrintable)]
[[play](https://go.dev/play/p/Pe1FE2gdtTP)]
+- **IsBin** : check if a give string is a valid binary value or not.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsBin)]
+ [[play](https://go.dev/play/p/ogPeg2XJH4P)]
+- **IsHex** : check if a give string is a valid hexadecimal value or not.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsHex)]
+ [[play](https://go.dev/play/p/M2qpHbEwmm7)]
+- **IsBase64URL** : check if a give string is a valid URL-safe Base64 encoded string.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsBase64URL)]
+ [[play](https://go.dev/play/p/vhl4mr8GZ6S)]
+- **IsJWT** : check if a give string is a valid JSON Web Token (JWT).
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsJWT)]
+ [[play](https://go.dev/play/p/R6Op7heJbKI)]
+- **IsVisa** : check if a give string is a valid visa card nubmer or not.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsVisa)]
+ [[play](https://go.dev/play/p/SdS2keOyJsl)]
+- **IsMasterCard** : check if a give string is a valid master card nubmer or not.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsMasterCard)]
+ [[play](https://go.dev/play/p/CwWBFRrG27b)]
+- **IsAmericanExpress** : check if a give string is a valid american expression card nubmer or not.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsAmericanExpress)]
+ [[play](https://go.dev/play/p/HIDFpcOdpkd)]
+- **IsUnionPay** : check if a give string is a valid union pay nubmer or not.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsUnionPay)]
+ [[play](https://go.dev/play/p/CUHPEwEITDf)]
+- **IsChinaUnionPay** : check if a give string is a valid china union pay nubmer or not.
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsChinaUnionPay)]
+ [[play](https://go.dev/play/p/yafpdxLiymu)]
25. Xerror package implements helpers for errors. index
diff --git a/README_zh-CN.md b/README_zh-CN.md
index 63a61a7..339b576 100644
--- a/README_zh-CN.md
+++ b/README_zh-CN.md
@@ -18,7 +18,7 @@
lancet(柳叶刀)是一个全面、高效、可复用的go语言工具函数库。 lancet受到了java apache common包和lodash.js的启发。
-## 官网 | [English](./README.md)
+## 官网 | [English](./README.md)
## 特性
@@ -1329,6 +1329,9 @@ import "github.com/duke-git/lancet/v2/slice"
- **Join** : 用指定的分隔符链接切片元素。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#Join)]
[[play](https://go.dev/play/p/huKzqwNDD7V)]
+- **Partition** : 根据给定的predicate判断函数分组切片元素。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/slice.md#Partition)]
+ [[play](https://go.dev/play/p/lkQ3Ri2NQhV)]
19. stream 流,该包仅验证简单的 stream 实现,功能有限。 回到目录
@@ -1572,7 +1575,6 @@ import "github.com/duke-git/lancet/v2/strutil"
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/strutil.md#RemoveWhiteSpace)]
[[play](https://go.dev/play/p/HzLC9vsTwkf)]
-
22. system 包含 os, runtime, shell command 的相关函数。 回到目录
```go
@@ -1833,6 +1835,33 @@ import "github.com/duke-git/lancet/v2/validator"
- **IsPrintable** : 检查字符串是否全部为可打印字符。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsPrintable)]
[[play](https://go.dev/play/p/Pe1FE2gdtTP)]
+- **IsBin** : 检查字符串是否是有效的二进制数。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsBin)]
+ [[play](https://go.dev/play/p/ogPeg2XJH4P)]
+- **IsHex** : 检查字符串是否是有效的十六进制数。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsHex)]
+ [[play](https://go.dev/play/p/M2qpHbEwmm7)]
+- **IsBase64URL** : 检查字符串是否是有效的 base64 url。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsBase64URL)]
+ [[play](https://go.dev/play/p/vhl4mr8GZ6S)]
+- **IsJWT** : 检查字符串是否是有效的 JSON Web Token (JWT)。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/validator.md#IsJWT)]
+ [[play](https://go.dev/play/p/R6Op7heJbKI)]
+- **IsVisa** : 检查字符串是否是有效的 visa 卡号。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsVisa)]
+ [[play](https://go.dev/play/p/SdS2keOyJsl)]
+- **IsMasterCard** : 检查字符串是否是有效的 MasterCard 卡号。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsMasterCard)]
+ [[play](https://go.dev/play/p/CwWBFRrG27b)]
+- **IsAmericanExpress** : 检查字符串是否是有效的 American Express 卡号。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsAmericanExpress)]
+ [[play](https://go.dev/play/p/HIDFpcOdpkd)]
+- **IsUnionPay** : 检查字符串是否是有效的美国银联卡号。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsUnionPay)]
+ [[play](https://go.dev/play/p/CUHPEwEITDf)]
+- **IsChinaUnionPay** : 检查字符串是否是有效的中国银联卡号。
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/validator.md#IsChinaUnionPay)]
+ [[play](https://go.dev/play/p/yafpdxLiymu)]
25. xerror 包实现一些错误处理函数。 回到目录
@@ -1855,7 +1884,7 @@ import "github.com/duke-git/lancet/v2/xerror"
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/xerror.md#XError_Wrap)]
[[play](https://go.dev/play/p/RpjJ5u5sc97)]
- **XError_Unwrap** : 解构 XEerror 为 error 对象。适配 github.com/pkg/errors。
- [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/xerror.md#XError_Unwrap)]
+ [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/xerror.md#XError_Unwrap)
[[play](https://go.dev/play/p/VUXJ8BST4c6)]
- **XError_With** : 添加与 XError 对象的键和值。
[[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/xerror.md#XError_With)]
@@ -1888,7 +1917,7 @@ import "github.com/duke-git/lancet/v2/xerror"
## 赞助
-您好,我是一名软件开发者,从事开发工作 13 年。热爱软件开源。并愿意为此付出精力。是开源项目lancet的作者。Lancet 自两年前开源发布以来,已有超过 1000 个内外部项目使用。lancet一直会对所有用户免费。您的支持是对我继续奋斗的有力鼓励。谢谢! 微信扫描以下二维码或点击以下赞助按钮发起赞助。
+您好,我是一名软件开发者,从事开发工作 13 年。热爱软件开源。并愿意为此付出精力。是开源项目 lancet 的作者。Lancet 自两年前开源发布以来,已有超过 1000 个内外部项目使用。lancet 一直会对所有用户免费。您的支持是对我继续奋斗的有力鼓励。谢谢! 微信扫描以下二维码或点击以下赞助按钮发起赞助。

@@ -1898,12 +1927,11 @@ import "github.com/duke-git/lancet/v2/xerror"
-*捐赠的资金将用于后续[lancet](https://www.golancet.cn/)官网的维护和云服务器的费用支付。或者当我写代码困倦时,给我买杯 ☕️。*
-
+_捐赠的资金将用于后续[lancet](https://www.golancet.cn/)官网的维护和云服务器的费用支付。或者当我写代码困倦时,给我买杯 ☕️。_
## 贡献者
-感谢所有为lancet贡献过代码的人!
+感谢所有为 lancet 贡献过代码的人!
diff --git a/docs/api/overview.md b/docs/api/overview.md
index 59ac2b4..4758c6f 100644
--- a/docs/api/overview.md
+++ b/docs/api/overview.md
@@ -27,7 +27,7 @@ outline: deep
display: inline-block;
vertical-align: middle;
line-height: 40px;
- background: #ecefff;
+ background: #10b981;
border: 1px solid;
margin-right: 10px;
margin-bottom: 10px;
diff --git a/docs/api/packages/slice.md b/docs/api/packages/slice.md
index 9731825..531643b 100644
--- a/docs/api/packages/slice.md
+++ b/docs/api/packages/slice.md
@@ -2464,7 +2464,7 @@ func main() {
func Partition[T any](slice []T, predicates ...func(item T) bool) [][]T
```
-示例:
+示例:[运行](https://go.dev/play/p/lkQ3Ri2NQhV)
```go
import (
diff --git a/docs/api/packages/validator.md b/docs/api/packages/validator.md
index 822b3eb..232898b 100644
--- a/docs/api/packages/validator.md
+++ b/docs/api/packages/validator.md
@@ -67,7 +67,6 @@ import (
-
## 文档
### ContainChinese
@@ -80,7 +79,7 @@ import (
func ContainChinese(s string) bool
```
-示例:[Run](https://go.dev/play/p/7DpU0uElYeM)
+示例:[运行](https://go.dev/play/p/7DpU0uElYeM)
```go
import (
@@ -114,7 +113,7 @@ func main() {
func ContainLetter(str string) bool
```
-示例:[Run](https://go.dev/play/p/lqFD04Yyewp)
+示例:[运行](https://go.dev/play/p/lqFD04Yyewp)
```go
import (
@@ -148,7 +147,7 @@ func main() {
func ContainLower(str string) bool
```
-示例:[Run](https://go.dev/play/p/Srqi1ItvnAA)
+示例:[运行](https://go.dev/play/p/Srqi1ItvnAA)
```go
import (
@@ -182,7 +181,7 @@ func main() {
func ContainUpper(str string) bool
```
-示例:[Run](https://go.dev/play/p/CmWeBEk27-z)
+示例:[运行](https://go.dev/play/p/CmWeBEk27-z)
```go
import (
@@ -216,7 +215,7 @@ func main() {
func IsAlpha(s string) bool
```
-示例:[Run](https://go.dev/play/p/7Q5sGOz2izQ)
+示例:[运行](https://go.dev/play/p/7Q5sGOz2izQ)
```go
import (
@@ -250,7 +249,7 @@ func main() {
func IsAllUpper(str string) bool
```
-示例:[Run](https://go.dev/play/p/ZHctgeK1n4Z)
+示例:[运行](https://go.dev/play/p/ZHctgeK1n4Z)
```go
import (
@@ -284,7 +283,7 @@ func main() {
func IsAllLower(str string) bool
```
-示例:[Run](https://go.dev/play/p/GjqCnOfV6cM)
+示例:[运行](https://go.dev/play/p/GjqCnOfV6cM)
```go
import (
@@ -318,7 +317,7 @@ func main() {
func IsASCII(str string) bool
```
-示例:[Run](https://go.dev/play/p/hfQNPLX0jNa)
+示例:[运行](https://go.dev/play/p/hfQNPLX0jNa)
```go
import (
@@ -358,7 +357,7 @@ func main() {
func IsBase64(base64 string) bool
```
-示例:[Run](https://go.dev/play/p/sWHEySAt6hl)
+示例:[运行](https://go.dev/play/p/sWHEySAt6hl)
```go
import (
@@ -389,7 +388,7 @@ func main() {
func IsChineseMobile(mobileNum string) bool
```
-示例:[Run](https://go.dev/play/p/GPYUlGTOqe3)
+示例:[运行](https://go.dev/play/p/GPYUlGTOqe3)
```go
import (
@@ -420,7 +419,7 @@ func main() {
func IsChineseIdNum(id string) bool
```
-示例:[Run](https://go.dev/play/p/d8EWhl2UGDF)
+示例:[运行](https://go.dev/play/p/d8EWhl2UGDF)
```go
import (
@@ -451,7 +450,7 @@ func main() {
func IsChinesePhone(phone string) bool
```
-示例:[Run](https://go.dev/play/p/RUD_-7YZJ3I)
+示例:[运行](https://go.dev/play/p/RUD_-7YZJ3I)
```go
import (
@@ -482,7 +481,7 @@ func main() {
func IsCreditCard(creditCart string) bool
```
-示例:[Run](https://go.dev/play/p/sNwwL6B0-v4)
+示例:[运行](https://go.dev/play/p/sNwwL6B0-v4)
```go
import (
@@ -513,7 +512,7 @@ func main() {
func IsDns(dns string) bool
```
-示例:[Run](https://go.dev/play/p/jlYApVLLGTZ)
+示例:[运行](https://go.dev/play/p/jlYApVLLGTZ)
```go
import (
@@ -547,7 +546,7 @@ func main() {
func IsEmail(email string) bool
```
-示例:[Run](https://go.dev/play/p/Os9VaFlT33G)
+示例:[运行](https://go.dev/play/p/Os9VaFlT33G)
```go
import (
@@ -578,7 +577,7 @@ func main() {
func IsEmptyString(s string) bool
```
-示例:[Run](https://go.dev/play/p/dpzgUjFnBCX)
+示例:[运行](https://go.dev/play/p/dpzgUjFnBCX)
```go
import (
@@ -612,7 +611,7 @@ func main() {
func IsInt(v any) bool
```
-示例:[Run](https://go.dev/play/p/eFoIHbgzl-z)
+示例:[运行](https://go.dev/play/p/eFoIHbgzl-z)
```go
import (
@@ -649,7 +648,7 @@ func main() {
func IsFloat(v any) bool
```
-示例:[Run](https://go.dev/play/p/vsyG-sxr99_Z)
+示例:[运行](https://go.dev/play/p/vsyG-sxr99_Z)
```go
import (
@@ -686,7 +685,7 @@ func main() {
func IsNumber(v any) bool
```
-示例:[Run](https://go.dev/play/p/mdJHOAvtsvF)
+示例:[运行](https://go.dev/play/p/mdJHOAvtsvF)
```go
import (
@@ -713,7 +712,6 @@ func main() {
}
```
-
### IsIntStr
验证字符串是否是可以转换为整数。
@@ -724,7 +722,7 @@ func main() {
func IsIntStr(s string) bool
```
-示例:[Run](https://go.dev/play/p/jQRtFv-a0Rk)
+示例:[运行](https://go.dev/play/p/jQRtFv-a0Rk)
```go
import (
@@ -761,7 +759,7 @@ func main() {
func IsFloatStr(s string) bool
```
-示例:[Run](https://go.dev/play/p/LOYwS_Oyl7U)
+示例:[运行](https://go.dev/play/p/LOYwS_Oyl7U)
```go
import (
@@ -798,7 +796,7 @@ func main() {
func IsNumberStr(s string) bool
```
-示例:[Run](https://go.dev/play/p/LzaKocSV79u)
+示例:[运行](https://go.dev/play/p/LzaKocSV79u)
```go
import (
@@ -835,7 +833,7 @@ func main() {
func IsJSON(str string) bool
```
-示例:[Run](https://go.dev/play/p/8Kip1Itjiil)
+示例:[运行](https://go.dev/play/p/8Kip1Itjiil)
```go
import (
@@ -872,7 +870,7 @@ func main() {
func IsRegexMatch(s, regex string) bool
```
-示例:[Run](https://go.dev/play/p/z_XeZo_litG)
+示例:[运行](https://go.dev/play/p/z_XeZo_litG)
```go
import (
@@ -893,8 +891,6 @@ func main() {
}
```
-
-
### IsIp
验证字符串是否是ip地址。
@@ -905,7 +901,7 @@ func main() {
func IsIp(ipstr string) bool
```
-示例:[Run](https://go.dev/play/p/FgcplDvmxoD)
+示例:[运行](https://go.dev/play/p/FgcplDvmxoD)
```go
import (
@@ -942,7 +938,7 @@ func main() {
func IsIpV4(ipstr string) bool
```
-示例:[Run](https://go.dev/play/p/zBGT99EjaIu)
+示例:[运行](https://go.dev/play/p/zBGT99EjaIu)
```go
import (
@@ -973,7 +969,7 @@ func main() {
func IsIpV6(ipstr string) bool
```
-示例:[Run](https://go.dev/play/p/AHA0r0AzIdC)
+示例:[运行](https://go.dev/play/p/AHA0r0AzIdC)
```go
import (
@@ -1004,7 +1000,7 @@ func main() {
func IsStrongPassword(password string, length int) bool
```
-示例:[Run](https://go.dev/play/p/QHdVcSQ3uDg)
+示例:[运行](https://go.dev/play/p/QHdVcSQ3uDg)
```go
import (
@@ -1035,7 +1031,7 @@ func main() {
func IsUrl(str string) bool
```
-示例:[Run](https://go.dev/play/p/pbJGa7F98Ka)
+示例:[运行](https://go.dev/play/p/pbJGa7F98Ka)
```go
import (
@@ -1070,7 +1066,7 @@ func main() {
func IsWeakPassword(password string, length int) bool
```
-示例:[Run](https://go.dev/play/p/wqakscZH5gH)
+示例:[运行](https://go.dev/play/p/wqakscZH5gH)
```go
import (
@@ -1101,7 +1097,7 @@ func main() {
func IsZeroValue(value any) bool
```
-示例:[Run](https://go.dev/play/p/UMrwaDCi_t4)
+示例:[运行](https://go.dev/play/p/UMrwaDCi_t4)
```go
import (
@@ -1138,7 +1134,7 @@ func main() {
func IsGBK(data []byte) bool
```
-示例:[Run](https://go.dev/play/p/E2nt3unlmzP)
+示例:[运行](https://go.dev/play/p/E2nt3unlmzP)
```go
import (
@@ -1160,7 +1156,6 @@ func main() {
}
```
-
### IsPrintable
检查字符串是否全部为可打印字符。
@@ -1171,7 +1166,7 @@ func main() {
func IsPrintable(str string) bool
```
-示例:[Run](https://go.dev/play/p/Pe1FE2gdtTP)
+示例:[运行](https://go.dev/play/p/Pe1FE2gdtTP)
```go
import (
@@ -1211,7 +1206,7 @@ func main() {
func IsBin(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/ogPeg2XJH4P)
```go
import (
@@ -1248,7 +1243,7 @@ func main() {
func IsHex(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/M2qpHbEwmm7)
```go
import (
@@ -1285,7 +1280,7 @@ func main() {
func IsBase64URL(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/vhl4mr8GZ6S)
```go
import (
@@ -1322,7 +1317,7 @@ func main() {
func IsJWT(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/R6Op7heJbKI)
```go
import (
@@ -1353,7 +1348,7 @@ func main() {
func IsVisa(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/SdS2keOyJsl)
```go
import (
@@ -1384,7 +1379,7 @@ func main() {
func IsMasterCard(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/CwWBFRrG27b)
```go
import (
@@ -1415,7 +1410,7 @@ func main() {
func IsAmericanExpress(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/HIDFpcOdpkd)
```go
import (
@@ -1436,7 +1431,7 @@ func main() {
}
```
-### IsVisa
+### IsUnionPay
检查字符串是否是有效的美国银联卡号。
@@ -1446,7 +1441,7 @@ func main() {
func IsUnionPay(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/CUHPEwEITDf)
```go
import (
@@ -1477,7 +1472,7 @@ func main() {
func IsChinaUnionPay(v string) bool
```
-示例:
+示例:[运行](https://go.dev/play/p/yafpdxLiymu)
```go
import (
diff --git a/docs/en/api/overview.md b/docs/en/api/overview.md
index 6c56979..8e384ef 100644
--- a/docs/en/api/overview.md
+++ b/docs/en/api/overview.md
@@ -27,7 +27,7 @@ outline: deep
display: inline-block;
vertical-align: middle;
line-height: 40px;
- background: #ecefff;
+ background: #059669;
border: 1px solid;
margin-right: 10px;
margin-bottom: 10px;
diff --git a/docs/en/api/packages/slice.md b/docs/en/api/packages/slice.md
index 200e047..4df2b1c 100644
--- a/docs/en/api/packages/slice.md
+++ b/docs/en/api/packages/slice.md
@@ -91,6 +91,7 @@ import (
- [Without](#Without)
- [KeyBy](#KeyBy)
- [Join](#Join)
+- [Partition](#Partition)
@@ -2461,7 +2462,7 @@ func main() {
func Partition[T any](slice []T, predicates ...func(item T) bool) [][]T
```
-Example:
+Example:[Run](https://go.dev/play/p/lkQ3Ri2NQhV)
```go
import (
diff --git a/docs/en/api/packages/validator.md b/docs/en/api/packages/validator.md
index 8884fad..f2fdbd6 100644
--- a/docs/en/api/packages/validator.md
+++ b/docs/en/api/packages/validator.md
@@ -81,7 +81,7 @@ import (
func ContainChinese(s string) bool
```
-Example:[运行](https://go.dev/play/p/7DpU0uElYeM)
+Example:[Run](https://go.dev/play/p/7DpU0uElYeM)
```go
import (
@@ -115,7 +115,7 @@ func main() {
func ContainLetter(str string) bool
```
-Example:[运行](https://go.dev/play/p/lqFD04Yyewp)
+Example:[Run](https://go.dev/play/p/lqFD04Yyewp)
```go
import (
@@ -149,7 +149,7 @@ func main() {
func ContainLower(str string) bool
```
-Example:[运行](https://go.dev/play/p/Srqi1ItvnAA)
+Example:[Run](https://go.dev/play/p/Srqi1ItvnAA)
```go
import (
@@ -183,7 +183,7 @@ func main() {
func ContainUpper(str string) bool
```
-Example:[运行](https://go.dev/play/p/CmWeBEk27-z)
+Example:[Run](https://go.dev/play/p/CmWeBEk27-z)
```go
import (
@@ -217,7 +217,7 @@ func main() {
func IsAlpha(s string) bool
```
-Example:[运行](https://go.dev/play/p/7Q5sGOz2izQ)
+Example:[Run](https://go.dev/play/p/7Q5sGOz2izQ)
```go
import (
@@ -251,7 +251,7 @@ func main() {
func IsAllUpper(str string) bool
```
-Example:[运行](https://go.dev/play/p/ZHctgeK1n4Z)
+Example:[Run](https://go.dev/play/p/ZHctgeK1n4Z)
```go
import (
@@ -285,7 +285,7 @@ func main() {
func IsAllLower(str string) bool
```
-Example:[运行](https://go.dev/play/p/GjqCnOfV6cM)
+Example:[Run](https://go.dev/play/p/GjqCnOfV6cM)
```go
import (
@@ -319,7 +319,7 @@ func main() {
func IsASCII(str string) bool
```
-Example:[运行](https://go.dev/play/p/hfQNPLX0jNa)
+Example:[Run](https://go.dev/play/p/hfQNPLX0jNa)
```go
import (
@@ -359,7 +359,7 @@ func main() {
func IsBase64(base64 string) bool
```
-Example:[运行](https://go.dev/play/p/sWHEySAt6hl)
+Example:[Run](https://go.dev/play/p/sWHEySAt6hl)
```go
import (
@@ -390,7 +390,7 @@ func main() {
func IsChineseMobile(mobileNum string) bool
```
-Example:[运行](https://go.dev/play/p/GPYUlGTOqe3)
+Example:[Run](https://go.dev/play/p/GPYUlGTOqe3)
```go
import (
@@ -421,7 +421,7 @@ func main() {
func IsChineseIdNum(id string) bool
```
-Example:[运行](https://go.dev/play/p/d8EWhl2UGDF)
+Example:[Run](https://go.dev/play/p/d8EWhl2UGDF)
```go
import (
@@ -452,7 +452,7 @@ func main() {
func IsChinesePhone(phone string) bool
```
-Example:[运行](https://go.dev/play/p/RUD_-7YZJ3I)
+Example:[Run](https://go.dev/play/p/RUD_-7YZJ3I)
```go
import (
@@ -483,7 +483,7 @@ func main() {
func IsCreditCard(creditCart string) bool
```
-Example:[运行](https://go.dev/play/p/sNwwL6B0-v4)
+Example:[Run](https://go.dev/play/p/sNwwL6B0-v4)
```go
import (
@@ -514,7 +514,7 @@ func main() {
func IsDns(dns string) bool
```
-Example:[运行](https://go.dev/play/p/jlYApVLLGTZ)
+Example:[Run](https://go.dev/play/p/jlYApVLLGTZ)
```go
import (
@@ -548,7 +548,7 @@ func main() {
func IsEmail(email string) bool
```
-Example:[运行](https://go.dev/play/p/Os9VaFlT33G)
+Example:[Run](https://go.dev/play/p/Os9VaFlT33G)
```go
import (
@@ -579,7 +579,7 @@ func main() {
func IsEmptyString(s string) bool
```
-Example:[运行](https://go.dev/play/p/dpzgUjFnBCX)
+Example:[Run](https://go.dev/play/p/dpzgUjFnBCX)
```go
import (
@@ -613,7 +613,7 @@ func main() {
func IsInt(v any) bool
```
-Example:[运行](https://go.dev/play/p/eFoIHbgzl-z)
+Example:[Run](https://go.dev/play/p/eFoIHbgzl-z)
```go
import (
@@ -650,7 +650,7 @@ func main() {
func IsFloat(v any) bool
```
-Example:[运行](https://go.dev/play/p/vsyG-sxr99_Z)
+Example:[Run](https://go.dev/play/p/vsyG-sxr99_Z)
```go
import (
@@ -687,7 +687,7 @@ func main() {
func IsNumber(v any) bool
```
-Example:[运行](https://go.dev/play/p/mdJHOAvtsvF)
+Example:[Run](https://go.dev/play/p/mdJHOAvtsvF)
```go
import (
@@ -724,7 +724,7 @@ func main() {
func IsIntStr(s string) bool
```
-Example:[运行](https://go.dev/play/p/jQRtFv-a0Rk)
+Example:[Run](https://go.dev/play/p/jQRtFv-a0Rk)
```go
import (
@@ -761,7 +761,7 @@ func main() {
func IsFloatStr(s string) bool
```
-Example:[运行](https://go.dev/play/p/LOYwS_Oyl7U)
+Example:[Run](https://go.dev/play/p/LOYwS_Oyl7U)
```go
import (
@@ -798,7 +798,7 @@ func main() {
func IsNumberStr(s string) bool
```
-Example:[运行](https://go.dev/play/p/LzaKocSV79u)
+Example:[Run](https://go.dev/play/p/LzaKocSV79u)
```go
import (
@@ -835,7 +835,7 @@ func main() {
func IsJSON(str string) bool
```
-Example:[运行](https://go.dev/play/p/8Kip1Itjiil)
+Example:[Run](https://go.dev/play/p/8Kip1Itjiil)
```go
import (
@@ -872,7 +872,7 @@ func main() {
func IsRegexMatch(s, regex string) bool
```
-Example:[运行](https://go.dev/play/p/z_XeZo_litG)
+Example:[Run](https://go.dev/play/p/z_XeZo_litG)
```go
import (
@@ -903,7 +903,7 @@ func main() {
func IsIp(ipstr string) bool
```
-Example:[运行](https://go.dev/play/p/FgcplDvmxoD)
+Example:[Run](https://go.dev/play/p/FgcplDvmxoD)
```go
import (
@@ -940,7 +940,7 @@ func main() {
func IsIpV4(ipstr string) bool
```
-Example:[运行](https://go.dev/play/p/zBGT99EjaIu)
+Example:[Run](https://go.dev/play/p/zBGT99EjaIu)
```go
import (
@@ -971,7 +971,7 @@ func main() {
func IsIpV6(ipstr string) bool
```
-Example:[运行](https://go.dev/play/p/AHA0r0AzIdC)
+Example:[Run](https://go.dev/play/p/AHA0r0AzIdC)
```go
import (
@@ -1002,7 +1002,7 @@ func main() {
func IsStrongPassword(password string, length int) bool
```
-Example:[运行](https://go.dev/play/p/QHdVcSQ3uDg)
+Example:[Run](https://go.dev/play/p/QHdVcSQ3uDg)
```go
import (
@@ -1033,7 +1033,7 @@ func main() {
func IsUrl(str string) bool
```
-Example:[运行](https://go.dev/play/p/pbJGa7F98Ka)
+Example:[Run](https://go.dev/play/p/pbJGa7F98Ka)
```go
import (
@@ -1068,7 +1068,7 @@ func main() {
func IsWeakPassword(password string, length int) bool
```
-Example:[运行](https://go.dev/play/p/wqakscZH5gH)
+Example:[Run](https://go.dev/play/p/wqakscZH5gH)
```go
import (
@@ -1099,7 +1099,7 @@ func main() {
func IsZeroValue(value any) bool
```
-Example:[运行](https://go.dev/play/p/UMrwaDCi_t4)
+Example:[Run](https://go.dev/play/p/UMrwaDCi_t4)
```go
import (
@@ -1136,7 +1136,7 @@ func main() {
func IsGBK(data []byte) bool
```
-Example:[运行](https://go.dev/play/p/E2nt3unlmzP)
+Example:[Run](https://go.dev/play/p/E2nt3unlmzP)
```go
import (
@@ -1168,7 +1168,7 @@ func main() {
func IsPrintable(str string) bool
```
-Example:[运行](https://go.dev/play/p/Pe1FE2gdtTP)
+Example:[Run](https://go.dev/play/p/Pe1FE2gdtTP)
```go
import (
@@ -1208,7 +1208,7 @@ func main() {
func IsBin(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/ogPeg2XJH4P)
```go
import (
@@ -1245,7 +1245,7 @@ func main() {
func IsHex(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/M2qpHbEwmm7)
```go
import (
@@ -1282,7 +1282,7 @@ func main() {
func IsBase64URL(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/vhl4mr8GZ6S)
```go
import (
@@ -1319,7 +1319,7 @@ func main() {
func IsJWT(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/R6Op7heJbKI)
```go
import (
@@ -1350,7 +1350,7 @@ func main() {
func IsVisa(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/SdS2keOyJsl)
```go
import (
@@ -1381,7 +1381,7 @@ func main() {
func IsMasterCard(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/CwWBFRrG27b)
```go
import (
@@ -1412,7 +1412,7 @@ func main() {
func IsAmericanExpress(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/HIDFpcOdpkd)
```go
import (
@@ -1443,7 +1443,7 @@ func main() {
func IsUnionPay(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/CUHPEwEITDf)
```go
import (
@@ -1474,7 +1474,7 @@ func main() {
func IsChinaUnionPay(v string) bool
```
-Example:
+Example:[Run](https://go.dev/play/p/yafpdxLiymu)
```go
import (
diff --git a/slice/slice.go b/slice/slice.go
index 5f412dc..6cacc8b 100644
--- a/slice/slice.go
+++ b/slice/slice.go
@@ -1201,7 +1201,7 @@ func Join[T any](slice []T, separator string) string {
}
// Partition all slice elements with the evaluation of the given predicate functions.
-// todo
+// Play: https://go.dev/play/p/lkQ3Ri2NQhV
func Partition[T any](slice []T, predicates ...func(item T) bool) [][]T {
l := len(predicates)
diff --git a/validator/validator.go b/validator/validator.go
index b3dea5e..3e16f86 100644
--- a/validator/validator.go
+++ b/validator/validator.go
@@ -411,25 +411,25 @@ func IsInt(v any) bool {
}
// IsBin check if a give string is a valid binary value or not.
-// Play: todo
+// Play: https://go.dev/play/p/ogPeg2XJH4P
func IsBin(v string) bool {
return binMatcher.MatchString(v)
}
// IsHex check if a give string is a valid hexadecimal value or not.
-// Play: todo
+// Play: https://go.dev/play/p/M2qpHbEwmm7
func IsHex(v string) bool {
return hexMatcher.MatchString(v)
}
// IsBase64URL check if a give string is a valid URL-safe Base64 encoded string.
-// Play: todo
+// Play: https://go.dev/play/p/vhl4mr8GZ6S
func IsBase64URL(v string) bool {
return base64URLMatcher.MatchString(v)
}
-// IsJWT check if a give string is is a valid JSON Web Token (JWT).
-// Play: todo
+// IsJWT check if a give string is a valid JSON Web Token (JWT).
+// Play: https://go.dev/play/p/R6Op7heJbKI
func IsJWT(v string) bool {
strings := strings.Split(v, ".")
if len(strings) != 3 {
@@ -446,31 +446,31 @@ func IsJWT(v string) bool {
}
// IsVisa check if a give string is a valid visa card nubmer or not.
-// Play: todo
+// Play: https://go.dev/play/p/SdS2keOyJsl
func IsVisa(v string) bool {
return visaMatcher.MatchString(v)
}
// IsMasterCard check if a give string is a valid master card nubmer or not.
-// Play: todo
+// Play: https://go.dev/play/p/CwWBFRrG27b
func IsMasterCard(v string) bool {
return masterCardMatcher.MatchString(v)
}
// IsAmericanExpress check if a give string is a valid american expression card nubmer or not.
-// Play: todo
+// Play: https://go.dev/play/p/HIDFpcOdpkd
func IsAmericanExpress(v string) bool {
return americanExpressMatcher.MatchString(v)
}
// IsUnionPay check if a give string is a valid union pay nubmer or not.
-// Play: todo
+// Play: https://go.dev/play/p/CUHPEwEITDf
func IsUnionPay(v string) bool {
return unionPay.MatchString(v)
}
// IsChinaUnionPay check if a give string is a valid china union pay nubmer or not.
-// Play: todo
+// Play: https://go.dev/play/p/yafpdxLiymu
func IsChinaUnionPay(v string) bool {
return chinaUnionPay.MatchString(v)
}