You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript正则重复捕获组问题:无法匹配UUID格式字符串

UUID正则匹配失败的解决方案

问题根源

你的正则匹配失败有两个核心问题:

  • 使用RegExp构造函数时,错误添加了正则字面量专属的/分隔符,导致正则会尝试匹配包含/的字符串,而UUID里没有这个字符,自然匹配失败。
  • 正则结构不符合UUID格式:UUID是8-4-4-4-12的结构,而你写的(([a-f0-9]{4})-){3}会匹配3组“4位字符+连字符”,这会导致总长度超出UUID的规范。

修正后的代码

JavaScript代码

// 推荐:使用正则字面量写法
const reg = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i;

// 若要用RegExp构造函数,需去掉斜杠,将修饰符作为第二个参数传入
// const reg = new RegExp('^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$', 'i');

document.getElementById('result').innerHTML = reg.test('7b3bda24-31db-44d4-aa7f-7012b3594623');

HTML代码

<p id="result"></p>

补充说明

  • 正则字面量写法更简洁直观,无需转义额外字符,是日常处理正则的优先选择。
  • 修正后的正则完全匹配UUID的标准格式:由连字符分隔的5段十六进制字符,分别为8位、4位、4位、4位、12位,i修饰符确保忽略大小写匹配。

内容的提问来源于stack exchange,提问作者Toniq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:05:22