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

技术咨询:使用JavaScript正则验证特定36位字母数字格式字符串

JavaScript正则匹配特定36字符格式(8-4-4-4-12字母数字组合)

没问题,我帮你搞定这个正则匹配需求!你要的格式是典型的带分隔符的分段字母数字串,总共36字符,我直接给你对应的正则表达式,再拆解一下每个部分的作用,最后给你实际的JavaScript代码示例。

正则表达式及拆解

我们需要的正则表达式如下:

/^[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}$/

逐个部分解析:

  • ^:匹配字符串的起始位置,确保目标字符串前面没有多余字符
  • [A-Za-z0-9]{8}:匹配8个任意大小写字母或数字,对应第一段
  • -:精确匹配分隔用的短横线
  • [A-Za-z0-9]{4}:重复三次,每次匹配4个字母或数字,对应中间的三个分段
  • [A-Za-z0-9]{12}:匹配最后一段的12个字母或数字
  • $:匹配字符串的结束位置,确保目标字符串后面没有多余字符

如果你的场景允许忽略大小写(比如输入混合大小写也视为有效),可以加上i标志:

/^[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}$/i

实际代码示例

你可以封装成一个函数来快速验证:

function isValidTargetFormat(str) {
  const formatRegex = /^[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}$/;
  return formatRegex.test(str);
}

// 测试用例
console.log(isValidTargetFormat('26cb3cca-6ce3-48d3-971d-950decffe749')); // 输出 true
console.log(isValidTargetFormat('26cb3cca-6ce3-48d3-971d-950decffe74')); // 输出 false(最后一段少1个字符)
console.log(isValidTargetFormat('26cb3cca_6ce3-48d3-971d-950decffe749')); // 输出 false(第一个分隔符错误)

额外说明

  • 如果只允许小写字母/数字,可将字符集改为[a-z0-9];只允许大写则用[A-Z0-9]
  • 这个正则会严格匹配整个字符串的长度和格式,确保完全符合你要求的36字符总长度(8+1+4+1+4+1+4+1+12=36)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:54:19