text

package
v2.0.0-...-6ba723b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 20, 2025 License: MIT Imports: 8 Imported by: 3

README

text Library

The text library provides a collection of utility functions for manipulating and processing text strings. It includes functions for case conversion, HTML processing, pattern matching, text parsing, and more.

Installation

import "github.com/getevo/evo/v2/lib/text"

Features

  • Case Conversion: Convert between camelCase, snake_case, kebab-case, and more
  • HTML Processing: Convert HTML to plain text
  • Pattern Matching: Match strings against patterns with wildcards
  • Text Parsing: Parse text with wildcards, split strings, convert to JSON
  • URL Slugs: Generate URL-friendly slugs from text
  • Random Strings: Generate random strings of specified length

Usage Examples

Case Conversion
package main

import (
    "fmt"
    "github.com/getevo/evo/v2/lib/text"
)

func main() {
    // Convert to camelCase
    camel := text.UpperCamelCase("hello_world")
    fmt.Println(camel) // Output: HelloWorld
    
    camel = text.LowerCamelCase("hello-world")
    fmt.Println(camel) // Output: helloWorld
    
    // Convert to snake_case
    snake := text.SnakeCase("HelloWorld")
    fmt.Println(snake) // Output: hello_world
    
    snake = text.UpperSnakeCase("helloWorld")
    fmt.Println(snake) // Output: HELLO_WORLD
    
    // Convert to kebab-case
    kebab := text.KebabCase("HelloWorld")
    fmt.Println(kebab) // Output: hello-world
    
    kebab = text.UpperKebabCase("helloWorld")
    fmt.Println(kebab) // Output: HELLO-WORLD
}
HTML Processing
package main

import (
    "fmt"
    "github.com/getevo/evo/v2/lib/text"
)

func main() {
    html := "<p>Hello <strong>World</strong>!</p><br/><p>This is a test.</p>"
    plainText := text.FromHTML(html)
    fmt.Println(plainText) // Output: Hello World!\nThis is a test.
}
Pattern Matching and Parsing
package main

import (
    "fmt"
    "github.com/getevo/evo/v2/lib/text"
)

func main() {
    // Match a string against a pattern
    matched := text.Match("hello.txt", "*.txt")
    fmt.Println(matched) // Output: true
    
    matched = text.Match("hello.jpg", "*.txt")
    fmt.Println(matched) // Output: false
    
    // Parse a string with wildcards
    parts := text.ParseWildCard("user-123-profile.jpg", "user-*-*.jpg")
    fmt.Println(parts) // Output: [123 profile]
    
    // Split a string on any of the given separators
    parts = text.SplitAny("hello,world;foo:bar", ",;:")
    fmt.Printf("%q\n", parts) // Output: ["hello" "world" "foo" "bar"]
    
    // Convert a value to JSON
    jsonStr := text.ToJSON(map[string]interface{}{
        "name": "John",
        "age":  30,
    })
    fmt.Println(jsonStr) // Output: {"age":30,"name":"John"}
}
URL Slugs and Random Strings
package main

import (
    "fmt"
    "github.com/getevo/evo/v2/lib/text"
)

func main() {
    // Generate a URL-friendly slug
    slug := text.Slugify("Hello World! This is a test.")
    fmt.Println(slug) // Output: hello-world-this-is-a-test
    
    // Generate a random string
    random := text.Random(10)
    fmt.Println(random) // Output: random 10-character string
}

Available Functions

Case Conversion
  • UpperCamelCase(s string) string: Converts to CamelCase with uppercase first letter
  • LowerCamelCase(s string) string: Converts to camelCase with lowercase first letter
  • SnakeCase(s string) string: Converts to snake_case
  • UpperSnakeCase(s string) string: Converts to UPPER_SNAKE_CASE
  • KebabCase(s string) string: Converts to kebab-case
  • UpperKebabCase(s string) string: Converts to KEBAB-CASE
HTML Processing
  • FromHTML(html string) string: Converts HTML to plain text
Pattern Matching and Parsing
  • Match(input, pattern string) bool: Checks if a string matches a pattern
  • ParseWildCard(input, expr string) []string: Parses a string using a wildcard pattern
  • SplitAny(s string, seps string) []string: Splits a string on any of the given separators
  • ToJSON(v any) string: Converts a value to a JSON string
URL Slugs and Random Strings
  • Slugify(text string) string: Generates a URL-friendly slug
  • Random(length int) string: Generates a random string of specified length

How It Works

The text library provides a set of utility functions for common text manipulation tasks. These functions are designed to be simple to use while providing powerful functionality.

The case conversion functions use a combination of character-by-character processing and regular expressions to convert between different case formats. The HTML processing function uses regular expressions to remove HTML tags and convert line breaks to newlines.

The pattern matching and parsing functions build on the standard library's capabilities, adding support for wildcard matching and text extraction. The URL slug function normalizes text and removes special characters to create URL-friendly strings.

For more detailed information, please refer to the source code and comments within the library.

Documentation

Index

Constants

This section is empty.

Variables

Functions

func FromHTML

func FromHTML(html string) string

func KebabCase

func KebabCase(s string) string

KebabCase converts a string into kebab case.

func LowerCamelCase

func LowerCamelCase(s string) string

LowerCamelCase converts a string into camel case starting with a lower case letter.

func Match

func Match(input, pattern string) bool

func ParseWildCard

func ParseWildCard(input, expr string) []string

func Random

func Random(length int) string

func Sanitize

func Sanitize()

func Slugify

func Slugify(text string) string

func SnakeCase

func SnakeCase(s string) string

SnakeCase converts a string into snake case.

func SplitAny

func SplitAny(s string, seps string) []string

func ToJSON

func ToJSON(v any) string

func UpperCamelCase

func UpperCamelCase(s string) string

UpperCamelCase converts a string into camel case starting with a upper case letter.

func UpperKebabCase

func UpperKebabCase(s string) string

UpperKebabCase converts a string into kebab case with capital letters.

func UpperSnakeCase

func UpperSnakeCase(s string) string

UpperSnakeCase converts a string into snake case with capital letters.

Types

type Allowed

type Allowed *regexp.Regexp
var (
	Alpha   Allowed = regexp.MustCompile(`([a-zA-Z\s])`)
	Numeric Allowed = regexp.MustCompile(`([0-9])`)
	Decimal Allowed = regexp.MustCompile(`^[+-]?([0-9]*[.])?[0-9]+$`)
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL