diff --git a/docs/validator.md b/docs/validator.md index aea5faf..e39af92 100644 --- a/docs/validator.md +++ b/docs/validator.md @@ -29,6 +29,7 @@ import ( - [IsAlpha](#IsAlpha) - [IsAllUpper](#IsAllUpper) - [IsAllLower](#IsAllLower) +- [IsASCII](#IsASCII) - [IsBase64](#IsBase64) - [IsChineseMobile](#IsChineseMobile) - [IsChineseIdNum](#IsChineseIdNum) @@ -293,6 +294,46 @@ func main() { } ``` +### IsASCII + +

Checks if string is ASCII char.

+ +Signature: + +```go +func IsASCII(str string) bool +``` + +Example: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/v2/validator" +) + +func main() { + result1 := validator.IsASCII("ABC") + result2 := validator.IsASCII("123") + result3 := validator.IsASCII("") + result4 := validator.IsASCII("😄") + result5 := validator.IsASCII("你好") + + fmt.Println(result1) + fmt.Println(result2) + fmt.Println(result3) + fmt.Println(result4) + fmt.Println(result5) + + // Output: + // true + // true + // true + // false + // false +} +``` + ### IsBase64

Check if the string is base64 string.

diff --git a/docs/validator_zh-CN.md b/docs/validator_zh-CN.md index b89db00..41f8a01 100644 --- a/docs/validator_zh-CN.md +++ b/docs/validator_zh-CN.md @@ -29,6 +29,7 @@ import ( - [IsAlpha](#IsAlpha) - [IsAllUpper](#IsAllUpper) - [IsAllLower](#IsAllLower) +- [IsASCII](#IsASCII) - [IsBase64](#IsBase64) - [IsChineseMobile](#IsChineseMobile) - [IsChineseIdNum](#IsChineseIdNum) @@ -293,6 +294,46 @@ func main() { } ``` +### IsASCII + +

验证字符串全部为ASCII字符。

+ +函数签名: + +```go +func IsASCII(str string) bool +``` + +示例: + +```go +import ( + "fmt" + "github.com/duke-git/lancet/v2/validator" +) + +func main() { + result1 := validator.IsASCII("ABC") + result2 := validator.IsASCII("123") + result3 := validator.IsASCII("") + result4 := validator.IsASCII("😄") + result5 := validator.IsASCII("你好") + + fmt.Println(result1) + fmt.Println(result2) + fmt.Println(result3) + fmt.Println(result4) + fmt.Println(result5) + + // Output: + // true + // true + // true + // false + // false +} +``` + ### IsBase64

验证字符串是否是base64编码

diff --git a/validator/validator.go b/validator/validator.go index bd8ebef..4af7e08 100644 --- a/validator/validator.go +++ b/validator/validator.go @@ -58,6 +58,17 @@ func IsAllLower(str string) bool { return str != "" } +// IsASCII checks if string is ASCII char. +// Play: +func IsASCII(str string) bool { + for i := 0; i < len(str); i++ { + if str[i] > unicode.MaxASCII { + return false + } + } + return true +} + // ContainUpper check if the string contain at least one upper case letter A-Z. // Play: https://go.dev/play/p/CmWeBEk27-z func ContainUpper(str string) bool { diff --git a/validator/validator_example_test.go b/validator/validator_example_test.go index fe44731..482d262 100644 --- a/validator/validator_example_test.go +++ b/validator/validator_example_test.go @@ -407,3 +407,24 @@ func ExampleIsGBK() { // Output: // true } + +func ExampleIsASCII() { + result1 := IsASCII("ABC") + result2 := IsASCII("123") + result3 := IsASCII("") + result4 := IsASCII("😄") + result5 := IsASCII("你好") + + fmt.Println(result1) + fmt.Println(result2) + fmt.Println(result3) + fmt.Println(result4) + fmt.Println(result5) + + // Output: + // true + // true + // true + // false + // false +} diff --git a/validator/validator_test.go b/validator/validator_test.go index 34ba876..82dafcb 100644 --- a/validator/validator_test.go +++ b/validator/validator_test.go @@ -401,3 +401,13 @@ func TestIsGBK(t *testing.T) { assert.Equal(true, IsGBK(gbkData)) assert.Equal(false, utf8.Valid(gbkData)) } + +func TestIsASCII(t *testing.T) { + assert := internal.NewAssert(t, "TestIsASCII") + + assert.Equal(true, IsASCII("ABC")) + assert.Equal(true, IsASCII("123")) + assert.Equal(true, IsASCII("")) + assert.Equal(false, IsASCII("😄")) + assert.Equal(false, IsASCII("你好")) +}