为了账号安全,请及时绑定邮箱和手机立即绑定

如何测试有效的UUID / GUID?

如何测试有效的UUID / GUID?

红糖糍粑 2019-11-11 10:19:04
如何检查变量是否包含有效的UUID / GUID标识符?我目前仅对验证类型1和4感兴趣,但是对您的答案没有限制。
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

当前,UUID如RFC4122中所指定。一个经常被忽略的边缘情况是NIL UUID,在此指出。以下正则表达式考虑到了这一点,并将返回NIL UUID的匹配项。请参阅以下有关仅接受非NIL UUID的UUID。这两种解决方案均适用于版本1至5(请参见第三个模块的第一个字符)。


因此,要验证UUID ...


/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i

...确保您拥有规范版本1至5的规范UUID,并且是RFC4122的适当变体。


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


轻松修改上面的正则表达式以满足原始问题的要求。


提示:正则表达式组/捕获


为了避免匹配NIL UUID:


/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i


查看完整回答
反对 回复 2019-11-11
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

正则表达式进行救援


/^[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');

或带括号


/^\{?[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}‌\}?$/


查看完整回答
反对 回复 2019-11-11
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

如果使用Node.js进行开发,建议使用一个名为Validator的软件包。它包含验证不同版本的UUID所需的所有正则表达式,此外还提供其他各种验证功能。


这是npm链接:验证程序


var a = 'd3aa88e2-c754-41e0-8ba6-4198a34aa0a2'

v.isUUID(a)

true

v.isUUID('abc')

false

v.isNull(a)

false


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 793 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信