猿问

JS如何判断input中密码输入的数字是否为连续数字?

6位支付密码设置,如何判断input中输入的数字是否为连续数字?如果是则提醒用户安全较低。
例如:333333,这是6位的相同的
123456或234567或987654,这种连续的

使用JS的.test()来判断,正则应该怎么写?


喵喵时光机
浏览 1538回答 2
2回答

12345678_0001

没有想到正则的方法,自己写了一个函数:检测序列是0123456789:function isContinue(str) {&nbsp; let diff = +str[1] - +str[0]&nbsp; diff = diff < 0 ? diff + 10 : diff&nbsp; let former = +str[0]&nbsp; for (let i = 1; i < str.length; i++) {&nbsp; &nbsp; let cur0 = +str[i]&nbsp; &nbsp; let cur1 = former + diff&nbsp; &nbsp; cur1 = cur1 < 0 ? cur1 + 10 : cur1 % 10&nbsp; &nbsp; if (cur0 !== cur1) return false&nbsp; &nbsp; former = cur0&nbsp; }&nbsp; return true}console.log(isContinue('987654')) // trueconsole.log(isContinue('432109')) // trueconsole.log(isContinue('123456')) // trueconsole.log(isContinue('901234')) // trueconsole.log(isContinue('201235')) // false检测的序列是123456789:function isContinue(str) {&nbsp; let base = 9&nbsp; let strArray = []&nbsp; for (let i = 0, len = str.length; i < len; i++) {&nbsp; &nbsp; let j = +str[i] - 1&nbsp; &nbsp; strArray[i] = j < 0 ? j + base : j&nbsp; }&nbsp; str = strArray.join('')&nbsp; let diff = +str[1] - +str[0]&nbsp; diff = diff < 0 ? diff + base : diff&nbsp; let former = +str[0]&nbsp; for (let i = 1; i < str.length; i++) {&nbsp; &nbsp; let cur0 = +str[i]&nbsp; &nbsp; let cur1 = former + diff&nbsp; &nbsp; cur1 = cur1 < 0 ? cur1 + base : cur1 % base&nbsp; &nbsp; if (cur0 !== cur1) return false&nbsp; &nbsp; former = cur0&nbsp; }&nbsp; return true}console.log(isContinue('987654')) // trueconsole.log(isContinue('432198')) // trueconsole.log(isContinue('123456')) // trueconsole.log(isContinue('912345')) // trueconsole.log(isContinue('901234')) // false

弑天下

function fun(str) {&nbsp; &nbsp; if (str.length < 2)&nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; var t = str.charCodeAt(0) - str.charCodeAt(1);&nbsp; &nbsp; for (var i = 0,l=str.length; i < l - 1; i++)&nbsp; &nbsp; &nbsp; &nbsp; if ((str.charCodeAt(i) - str.charCodeAt(i + 1)) != t)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; return true;}fun('123456')正则的话太麻烦了
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答