JS正则如何判断六个连续的数字

比如123456,456789,876543

阅读 7.3k
5 个回答

(0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}d 可以匹配正序
改一改也可以倒序,但是要判断两次

还是用循环吧,一个循环搞定

function isContinuityNum(num){

  let arr=Array.from(num.toString())
  let arr1= [...arr]
  arr.reverse()
  
  arr3 = arr1.map((n,i)=>{
    return parseInt(n)+parseInt(arr[i])
  })
  
  return [...new Set(arr3)].length === 1

}

var d=isContinuityNum(num)
console.log(d)

直接for循环吧 记录上一位 判断数字是否连续

正则不适合干这活 同楼上

正则需要两次,先replace掉7位以及7位以上的的数字,然后剩下的字符串最长的也只有6位了,这时候只需要匹配6位的就行了。没有长数字的干扰了。。

论会百度的重要性

引用自:https://bbs.csdn.net/topics/3...

var number = '123456';
var str = number.replace(/\d/g, function($val, pos) {
    return parseInt($val) - pos;
});
console.log(/^(\d)\1+$/.test(str));

var number = '654321';
var str = number.replace(/\d/g, function($val, pos) {
    return parseInt($val) + pos;
});
console.log(/^(\d)\1+$/.test(str));
推荐问题