连续多个相邻字符校验

最近有一新的功能需求,需要校验密码不能输入>=3个连续相邻的字母或数字,第一反应去网上找正则,翻来找去没有匹配的正则,有一种笨方法是将所有字母数字列举出来,但是代码终究不优美。于是想到了ASCII码去对比来解决,如下

复制代码
function isKeyBoardContinuousChar(str) {
 var lowStr = str.toLowerCase()  //不区分大小写
  if(lowStr.length>2){  // 连续三位以上
    for(let i=1;i<=str.length-1;i++){
      let firstIndex = lowStr.charCodeAt(i-1)
      let secondIndex = lowStr.charCodeAt(i)
      let thirdIndex = lowStr.charCodeAt(++i)
      i--
      if((firstIndex+1 == secondIndex && secondIndex+1 == thirdIndex) || (firstIndex-1 == secondIndex && secondIndex-1 == thirdIndex)){
        return true
      }
    }
  }
  return false
}
复制代码

 

posted @   崔崔崔呢  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示