1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 12:52:28 +08:00

feat: add IsASCII

This commit is contained in:
dudaodong
2023-03-30 14:41:32 +08:00
parent 6453f755a6
commit e56a8a1ef5
5 changed files with 124 additions and 0 deletions

View File

@@ -29,6 +29,7 @@ import (
- [IsAlpha](#IsAlpha) - [IsAlpha](#IsAlpha)
- [IsAllUpper](#IsAllUpper) - [IsAllUpper](#IsAllUpper)
- [IsAllLower](#IsAllLower) - [IsAllLower](#IsAllLower)
- [IsASCII](#IsASCII)
- [IsBase64](#IsBase64) - [IsBase64](#IsBase64)
- [IsChineseMobile](#IsChineseMobile) - [IsChineseMobile](#IsChineseMobile)
- [IsChineseIdNum](#IsChineseIdNum) - [IsChineseIdNum](#IsChineseIdNum)
@@ -293,6 +294,46 @@ func main() {
} }
``` ```
### <span id="IsASCII">IsASCII</span>
<p>Checks if string is ASCII char.</p>
<b>Signature:</b>
```go
func IsASCII(str string) bool
```
<b>Example:</b>
```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
}
```
### <span id="IsBase64">IsBase64</span> ### <span id="IsBase64">IsBase64</span>
<p>Check if the string is base64 string.</p> <p>Check if the string is base64 string.</p>

View File

@@ -29,6 +29,7 @@ import (
- [IsAlpha](#IsAlpha) - [IsAlpha](#IsAlpha)
- [IsAllUpper](#IsAllUpper) - [IsAllUpper](#IsAllUpper)
- [IsAllLower](#IsAllLower) - [IsAllLower](#IsAllLower)
- [IsASCII](#IsASCII)
- [IsBase64](#IsBase64) - [IsBase64](#IsBase64)
- [IsChineseMobile](#IsChineseMobile) - [IsChineseMobile](#IsChineseMobile)
- [IsChineseIdNum](#IsChineseIdNum) - [IsChineseIdNum](#IsChineseIdNum)
@@ -293,6 +294,46 @@ func main() {
} }
``` ```
### <span id="IsASCII">IsASCII</span>
<p>验证字符串全部为ASCII字符。</p>
<b>函数签名:</b>
```go
func IsASCII(str string) bool
```
<b>示例:</b>
```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
}
```
### <span id="IsBase64">IsBase64</span> ### <span id="IsBase64">IsBase64</span>
<p>验证字符串是否是base64编码</p> <p>验证字符串是否是base64编码</p>

View File

@@ -58,6 +58,17 @@ func IsAllLower(str string) bool {
return str != "" 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. // ContainUpper check if the string contain at least one upper case letter A-Z.
// Play: https://go.dev/play/p/CmWeBEk27-z // Play: https://go.dev/play/p/CmWeBEk27-z
func ContainUpper(str string) bool { func ContainUpper(str string) bool {

View File

@@ -407,3 +407,24 @@ func ExampleIsGBK() {
// Output: // Output:
// true // 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
}

View File

@@ -401,3 +401,13 @@ func TestIsGBK(t *testing.T) {
assert.Equal(true, IsGBK(gbkData)) assert.Equal(true, IsGBK(gbkData))
assert.Equal(false, utf8.Valid(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("你好"))
}