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

资产编号正则匹配问题求助:SOT开头格式验证失败

资产编号验证问题排查与修复

你的两个资产编号正则表达式本身是有效的:

  • 格式1(P开头):/^P[0-7]-[A-Z]{2,3}-\d{5}$/(可简化原表达式的冗余语法,不影响验证效果)
  • 格式2(SOT开头):/^SOT-[A-Z]{2,3}-\d{5}$/

报错的核心原因是JS验证逻辑的判断条件错误:
原代码使用!match1 || !match2,这个逻辑会导致只要不满足其中一种格式就触发错误提示——比如输入符合格式2的编号时,match1为false,!match1为true,直接触发||分支的错误,造成误判。

正确的逻辑应该是当两种格式都不满足时才报错,即把判断条件改为!match1 && !match2。

修正后的验证代码示例

function validateAssetNumber(assetNumber) {
  // 格式1:P+0-7数字 + 2-3大写字母 + 5位数字
  const pattern1 = /^P[0-7]-[A-Z]{2,3}-\d{5}$/;
  // 格式2:SOT + 2-3大写字母 + 5位数字
  const pattern2 = /^SOT-[A-Z]{2,3}-\d{5}$/;
  
  const isMatchPattern1 = pattern1.test(assetNumber);
  const isMatchPattern2 = pattern2.test(assetNumber);
  
  if (!isMatchPattern1 && !isMatchPattern2) {
    return "pattern does not match";
  }
  return "valid asset number";
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:50:27