连续多个相邻字符校验
最近有一新的功能需求,需要校验密码不能输入>=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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端