golang password complexity check

//The password intensity must be a word ⺟⼤ ⼩ ⼩ + digital + symbol, 8 or morefunc CheckPasswordLever(ps string) error {    if len(ps) < 8 {        return fmt.Errorf("password len is < 9")    }    num := `[0-9]{1}`    a_z := `[a-z]{1}`    A_Z := `[A-Z]{1}`    symbol := `[!@#~$%^&*()+|_]{1}`    if b, err := regexp.MatchString(num, ps); !b || err != nil {        return fmt.Errorf("password need num :%v", err)    }    if b, err := regexp.MatchString(a_z, ps); !b || err != nil {        return fmt.Errorf("password need a_z :%v", err)    }    if b, err := regexp.MatchString(A_Z, ps); !b || err != nil {        return fmt.Errorf("password need A_Z :%v", err)    }    if b, err := regexp.MatchString(symbol, ps); !b || err != nil {        return fmt.Errorf("password need symbol :%v", err)    }    return nil}