How to check if a string contains only letters, numbers, underscores and dashes in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "regexp"
)

// isValidString checks if the input string matches the allowed pattern
func isValidString(s string) bool {
    pattern := "^[A-Za-z0-9_-]*$"
    matched, err := regexp.MatchString(pattern, s)
    if err != nil {
        fmt.Println("Regex error:", err)
        return false
    }
    
    return matched
}

func main() {
    s1 := "-abc_123-"
    if isValidString(s1) {
        fmt.Println("yes")
    } else {
        fmt.Println("no")
    }

    s2 := "-abc_123-(!)"
    if isValidString(s2) {
        fmt.Println("yes")
    } else {
        fmt.Println("no")
    }
}

 
 
/*
run:
 
yes
no

*/

 



answered May 31, 2025 by avibootz
...