如何在Go中验证UUID v4?

Roberto Santelices:

我有以下代码:

func GetUUIDValidator(text string) bool {
    r, _ := regexp.Compile("/[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}/")
    return r.Match([]byte(text))
}

但是,当我将其fbd3036f-0f1c-4e98-b71c-d4cd61213f90作为值传递时,得到了false,而实际上它是一个UUID v4。

我究竟做错了什么?

帕特里克·达波隆尼奥:

试试...

func IsValidUUID(uuid string) bool {
    r := regexp.MustCompile("^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-4[a-fA-F0-9]{3}-[8|9|aA|bB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$")
    return r.MatchString(uuid)
}

实时示例:https//play.golang.org/p/a4Z-Jn4EvG

注意:正如其他人所说,用正则表达式验证UUID可能很慢。如果您需要更好的性能,也可以考虑其他选择。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章