27 lines
545 B
Go
27 lines
545 B
Go
|
package rnd
|
||
|
|
||
|
// RefID generates a new reference ID with optional 2-character prefix.
|
||
|
func RefID(id string) string {
|
||
|
if n := len(id); n == 0 {
|
||
|
return "ref" + Base36(9)
|
||
|
} else if n > 4 {
|
||
|
return id[:4] + Base36(8)
|
||
|
} else {
|
||
|
return id + Base36(12-n)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// IsRefID checks if the string is a valid reference ID.
|
||
|
func IsRefID(s string) bool {
|
||
|
if n := len(s); n < 10 || n > 14 {
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
return IsAlnum(s)
|
||
|
}
|
||
|
|
||
|
// InvalidRefID checks if the reference ID is empty or invalid.
|
||
|
func InvalidRefID(s string) bool {
|
||
|
return !IsRefID(s)
|
||
|
}
|