猿问

如何测试有效的UUID / GUID?

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

我目前仅对验证类型1和4感兴趣,但是对您的答案没有限制。


红糖糍粑
浏览 794回答 3
3回答

侃侃无极

当前,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

蓝山帝景

正则表达式进行救援/^[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}‌\}?$/

翻翻过去那场雪

如果使用Node.js进行开发,建议使用一个名为Validator的软件包。它包含验证不同版本的UUID所需的所有正则表达式,此外还提供其他各种验证功能。这是npm链接:验证程序var a = 'd3aa88e2-c754-41e0-8ba6-4198a34aa0a2'v.isUUID(a)truev.isUUID('abc')falsev.isNull(a)false
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答