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

密码验证:检测是否存在连续递增数字序列的实现需求

判断数字字符串是否为连续递增序列

需求:给定纯数字字符串,若整个字符串是相邻数字依次递增1的连续序列则返回true,否则返回false。对应示例:

  • "113489" → false(存在重复数字,不符合连续递增)
  • "123456" → true(全程连续递增)
  • "189033" → false(后续数字中断递增,且存在重复)

方法一:遍历检查法

这是最直观的实现方式,逐个验证相邻数字的关系:

function isConsecutiveIncreasing(str) {
  // 长度不足2的字符串无法形成连续递增序列
  if (str.length < 2) return false;
  
  for (let i = 0; i < str.length - 1; i++) {
    const currentNum = parseInt(str[i], 10);
    const nextNum = parseInt(str[i+1], 10);
    
    // 只要有一对不满足后数=前数+1,直接返回false
    if (nextNum !== currentNum + 1) {
      return false;
    }
  }
  
  // 所有相邻对都符合要求
  return true;
}

// 测试用例
console.log(isConsecutiveIncreasing("113489")); // false
console.log(isConsecutiveIncreasing("123456")); // true
console.log(isConsecutiveIncreasing("189033")); // false

优点:

  • 逻辑简单易懂,调试方便
  • 提前终止:一旦发现不符合的情况立刻返回,无需遍历整个字符串

方法二:正则表达式法

通过预定义所有合法的递增数字对,用正则匹配整个字符串是否完全由这些对组成:

function isConsecutiveIncreasing(str) {
  // 匹配所有合法的连续递增数字对,且覆盖整个字符串
  const consecutiveRegex = /^(01|12|23|34|45|56|67|78|89)+$/;
  return consecutiveRegex.test(str);
}

// 测试用例
console.log(isConsecutiveIncreasing("113489")); // false
console.log(isConsecutiveIncreasing("123456")); // true
console.log(isConsecutiveIncreasing("189033")); // false

优点:

  • 代码简洁,一行核心逻辑就能完成判断
  • 无需手动遍历,利用正则引擎完成匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:05:21