首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何测试有效的UUID/GUID?

如何测试有效的UUID/GUID?
EN

Stack Overflow用户
提问于 2011-10-27 00:40:49
回答 14查看 235.6K关注 0票数 350

如何检查变量是否包含有效的UUID/GUID标识符?

我目前只对验证类型1和类型4感兴趣,但这不应该成为您回答问题的限制。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2012-12-01 05:06:33

目前,UUID在RFC4122中指定。here指出,一个经常被忽视的边缘情况是NIL UUID。下面的正则表达式考虑到了这一点,并将返回与NIL UUID匹配的内容。有关只接受非空UUID的UUID,请参阅下面的内容。这两种解决方案都适用于版本1到5(请参阅第三个块的第一个字符)。

因此,要验证UUID...

代码语言:javascript
复制
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i

...ensures您有一个从版本1到版本5的规范格式的UUID,根据RFC4122,它是适当的变体。

注意:花括号{}不是规范的。它们是某些系统和用法的产物。

很容易修改上面的正则表达式,以满足原始问题的要求。

提示: regex组/捕获

要避免匹配NIL UUID,请执行以下操作:

代码语言:javascript
复制
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
票数 518
EN

Stack Overflow用户

发布于 2011-10-27 00:46:08

正则表达式来解救

代码语言:javascript
复制
/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test('01234567-9ABC-DEF0-1234-56789ABCDEF0');

或使用括号

代码语言:javascript
复制
/^\{?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}‌​\}?$/
票数 75
EN

Stack Overflow用户

发布于 2014-08-07 06:43:06

如果您使用Node.js进行开发,建议使用一个名为Validator的包。它包括验证不同版本的UUID所需的所有正则表达式,以及用于验证的各种其他函数。

这是npm链接:Validator

代码语言:javascript
复制
var a = 'd3aa88e2-c754-41e0-8ba6-4198a34aa0a2'
v.isUUID(a)
true
v.isUUID('abc')
false
v.isNull(a)
false
票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7905929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档