Thursday, 19 March 2026

Golang - RegEx - SCW

import (

    "errors"

    "regexp"

)

var (

    upperCaseRegex = `(.*[A-Z].*)`

    lowerCaseRegex = `(.*[a-z].*)`

    numbersRegex   = `(.*\d.*)`

    emailPattern   = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)" +

        "*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])" +

        "*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[" +

        "(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.)" +

        "{3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:" +

        "(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\\])"

    ErrEmailInvalid    = errors.New("email is not a valid email address format")

    ErrPasswordInvalid = errors.New("password does not comply to the password policy")

)

func Password(passw string) bool {

    pw := []byte(passw)

    if len(passw) > 100 || len(passw) < 8 {

        return false

    }

    _, err := regexp.Match(upperCaseRegex, pw)

    if err != nil {

        return false

    }

    _, err = regexp.Match(lowerCaseRegex, pw)

    if err != nil {

        return false

    }

    _, err = regexp.Match(numbersRegex, pw)

    if err != nil {

        return false

    }

    return true

}

func IsEmail(email string) bool {

    match, err := regexp.Match(emailPattern, []byte(email))

    if err != nil {

        return false

    }

    return match

}



Golang - RegEx - SCW

import (     "errors"     "regexp" ) ​ var (     upperCaseRegex = `(.*[A-Z].*)`     lowerCaseRegex = `(.*[a-z].*)`     n...