mirror of
https://github.com/duke-git/lancet.git
synced 2026-02-13 01:02:28 +08:00
feat: add IsPrintable
This commit is contained in:
@@ -51,6 +51,7 @@ import (
|
|||||||
- [IsWeakPassword](#IsWeakPassword)
|
- [IsWeakPassword](#IsWeakPassword)
|
||||||
- [IsZeroValue](#IsZeroValue)
|
- [IsZeroValue](#IsZeroValue)
|
||||||
- [IsGBK](#IsGBK)
|
- [IsGBK](#IsGBK)
|
||||||
|
- [IsPrintable](#IsPrintable)
|
||||||
|
|
||||||
<div STYLE="page-break-after: always;"></div>
|
<div STYLE="page-break-after: always;"></div>
|
||||||
|
|
||||||
@@ -296,7 +297,7 @@ func main() {
|
|||||||
|
|
||||||
### <span id="IsASCII">IsASCII</span>
|
### <span id="IsASCII">IsASCII</span>
|
||||||
|
|
||||||
<p>Checks if string is ASCII char.</p>
|
<p>Checks if string is all ASCII char.</p>
|
||||||
|
|
||||||
<b>Signature:</b>
|
<b>Signature:</b>
|
||||||
|
|
||||||
@@ -1031,3 +1032,44 @@ func main() {
|
|||||||
// true
|
// true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### <span id="IsPrintable">IsPrintable</span>
|
||||||
|
|
||||||
|
<p>Checks if string is all printable chars.</p>
|
||||||
|
|
||||||
|
<b>Signature:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsPrintable(str string) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>Example:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/validator"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := validator.IsPrintable("ABC")
|
||||||
|
result2 := validator.IsPrintable("{id: 123}")
|
||||||
|
result3 := validator.IsPrintable("")
|
||||||
|
result4 := validator.IsPrintable("😄")
|
||||||
|
result5 := validator.IsPrintable("\u0000")
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
fmt.Println(result4)
|
||||||
|
fmt.Println(result5)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -51,6 +51,7 @@ import (
|
|||||||
- [IsWeakPassword](#IsWeakPassword)
|
- [IsWeakPassword](#IsWeakPassword)
|
||||||
- [IsZeroValue](#IsZeroValue)
|
- [IsZeroValue](#IsZeroValue)
|
||||||
- [IsGBK](#IsGBK)
|
- [IsGBK](#IsGBK)
|
||||||
|
- [IsPrintable](#IsPrintable)
|
||||||
|
|
||||||
<div STYLE="page-break-after: always;"></div>
|
<div STYLE="page-break-after: always;"></div>
|
||||||
|
|
||||||
@@ -1031,3 +1032,44 @@ func main() {
|
|||||||
// true
|
// true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### <span id="IsPrintable">IsPrintable</span>
|
||||||
|
|
||||||
|
<p>检查字符串是否全部为可打印字符。</p>
|
||||||
|
|
||||||
|
<b>函数签名:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
func IsPrintable(str string) bool
|
||||||
|
```
|
||||||
|
|
||||||
|
<b>示例:</b>
|
||||||
|
|
||||||
|
```go
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"github.com/duke-git/lancet/v2/validator"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
result1 := validator.IsPrintable("ABC")
|
||||||
|
result2 := validator.IsPrintable("{id: 123}")
|
||||||
|
result3 := validator.IsPrintable("")
|
||||||
|
result4 := validator.IsPrintable("😄")
|
||||||
|
result5 := validator.IsPrintable("\u0000")
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
fmt.Println(result4)
|
||||||
|
fmt.Println(result5)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -58,8 +58,8 @@ func IsAllLower(str string) bool {
|
|||||||
return str != ""
|
return str != ""
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsASCII checks if string is ASCII char.
|
// IsASCII checks if string is all ASCII char.
|
||||||
// Play:
|
// Play: todo
|
||||||
func IsASCII(str string) bool {
|
func IsASCII(str string) bool {
|
||||||
for i := 0; i < len(str); i++ {
|
for i := 0; i < len(str); i++ {
|
||||||
if str[i] > unicode.MaxASCII {
|
if str[i] > unicode.MaxASCII {
|
||||||
@@ -69,6 +69,20 @@ func IsASCII(str string) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsPrintable checks if string is all printable chars.
|
||||||
|
// Play: todo
|
||||||
|
func IsPrintable(str string) bool {
|
||||||
|
for _, r := range str {
|
||||||
|
if !unicode.IsPrint(r) {
|
||||||
|
if r == '\n' || r == '\r' || r == '\t' || r == '`' {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
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 {
|
||||||
|
|||||||
@@ -428,3 +428,24 @@ func ExampleIsASCII() {
|
|||||||
// false
|
// false
|
||||||
// false
|
// false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ExampleIsPrintable() {
|
||||||
|
result1 := IsPrintable("ABC")
|
||||||
|
result2 := IsPrintable("{id: 123}")
|
||||||
|
result3 := IsPrintable("")
|
||||||
|
result4 := IsPrintable("😄")
|
||||||
|
result5 := IsPrintable("\u0000")
|
||||||
|
|
||||||
|
fmt.Println(result1)
|
||||||
|
fmt.Println(result2)
|
||||||
|
fmt.Println(result3)
|
||||||
|
fmt.Println(result4)
|
||||||
|
fmt.Println(result5)
|
||||||
|
|
||||||
|
// Output:
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// true
|
||||||
|
// false
|
||||||
|
}
|
||||||
|
|||||||
@@ -411,3 +411,13 @@ func TestIsASCII(t *testing.T) {
|
|||||||
assert.Equal(false, IsASCII("😄"))
|
assert.Equal(false, IsASCII("😄"))
|
||||||
assert.Equal(false, IsASCII("你好"))
|
assert.Equal(false, IsASCII("你好"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsPrintable(t *testing.T) {
|
||||||
|
assert := internal.NewAssert(t, "TestIsPrintable")
|
||||||
|
|
||||||
|
assert.Equal(true, IsPrintable("ABC"))
|
||||||
|
assert.Equal(true, IsPrintable("{id: 123}"))
|
||||||
|
assert.Equal(true, IsPrintable(""))
|
||||||
|
assert.Equal(true, IsPrintable("😄"))
|
||||||
|
assert.Equal(false, IsPrintable("\u0000"))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user