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

我目前只对验证类型1和类型4感兴趣,但这不应该限制你的答案.

推荐答案

目前,UUID符合RFC4122的规定.一个经常被忽略的边缘情况是NIL UUID,注here.下面的正则表达式考虑了这一点,并将返回一个与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

...确保您有一个规范格式的UUID,版本1到5,是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

Javascript相关问答推荐

未使用Outlet渲染子组件

类型错误:tasks.map不是函数(MERN堆栈)

在Phaser中查找哪个物体处于碰撞中

Flisk和JS错误:未捕获的Syntax错误:意外的令牌'<'

vanillajs-datepicker未设置输入值,日期单击时未触发更改事件

如何访问Json返回的ASP.NET Core 6中的导航图像属性

从PWA中的内部存储读取文件

如何将Map字符串,布尔值转换为{key:string;value:bo布尔值;}[]?<>

在open shadow—root中匹配时,使用jQuery删除一个封闭的div类

VUE 3捕获错误并呈现另一个组件

闭包是将值复制到内存的另一个位置吗?

使用VUE和SCSS的数字滚动动画(&;内容生成)

邮箱密码重置链接不适用于已部署的React应用程序

TinyMCE 6导致Data:Image对象通过提供的脚本过度上载

搜索功能不是在分页的每一页上进行搜索

在不扭曲纹理的情况下在顶点着色器中旋转UV

是否可以将异步调用与useState(UnctionName)一起使用

在Vercel中部署Next.js项目时获取`ReferenceError:未定义文档`

使用RxJS from Event和@ViewChild vs KeyUp事件和RxJS主题更改输入字段值

JWT Cookie安全性