js判断不能输入连续6个数字!在线等

时间:2021-03-27 18:40:01
在WEB系统中,许多用户特喜欢用这类简单连续密码,比如123456、234567、345678……等连续数字,还有如88888,111111等相同的数字
。求一个js程序判断,密码必须全部为数字,但是不允许像上面的连续6个相近和相同的数字,但是允许这样:123459,123854,888889。在线等!

15 个解决方案

#1


用正则不更简单吗 "^\\d{6}$"

#2


你这个正则不行!请测试一下!

#3


var str = document.getElementById("sentence").value;
var flag = true;
for (i = 0; i < str.length - 1; i++) {
if (str.charAt(i) != str.charAt(i + 1)) {
flag = false;
break;
}
}
if (flag == true) {
alert("error");
} else {
alert("right");
}

#4


楼主看看行不

#5


if (str.search("[0-9]{6}") == -1) {
return;
}
这个加上判断是不是6位的数字

#6


var r = new RegExp(/\d{6}/);
var s ='123456';
var a = s.match(/\d/g);
var is = false;
if(!r.test(s))
{
    alert('格式错误!');
}else
{
for(var i=0,len=a.length-1;i<len;i++){
    if(parseInt(a[i])+1!=a[i+1])
    {    
        is = true;
        break;
    }
}
if(!is)
 alert('不能连续!');
}

#7



function check(str){
    var f = parseInt(str.charAt(0));
    return /\d{6}/.test(str) && (/^(\d)\1{5}$/.test(str) || str == str.replace(/\d/g, function(v, i){return f+i;}));
}
var str = "Z123456", str2 = "111111", str3="123457";
alert(check(str));
alert(check(str2));
alert(check(str3));

#8


引用 3 楼 bird_fro 的回复:
var str = document.getElementById("sentence").value;
var flag = true;
for (i = 0; i < str.length - 1; i++) {
if (str.charAt(i) != str.charAt(i + 1)) {
flag = false;
break;
}
}
if (flag == true) {
alert("error");
} else {
alert("right");
}

UP

#9



function test(s) {
if (!/^\d{6}$/.test(s)) return false; // 不是6位数字
if (/^(\d)\1+$/.test(s)) return false;  // 全一样

var str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)-pos;
});
if (/^(\d)\1+$/.test(str)) return false;  // 顺增

str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)+pos;
});
if (/^(\d)\1+$/.test(str)) return false;  // 顺减
return true;
}

#10



<SCRIPT LANGUAGE="JavaScript">
  <!--
function check(v){
if(/^[0-9]{6}$/.test(v)){
var prev=-1,r=0;
v.replace(/(\d{1})/g,function($,$1,i){
if(parseInt(prev)+1==$1)r++
prev=$1
})
if(r==v.length-1)alert('数字不能连续')
else alert('ok');
return;
}
alert('必需为数字!且长度为6');
}
  //-->
  </SCRIPT>

  <input type="text" id="aaaa"/><input type="button" value="check" onclick="check(document.getElementById('aaaa').value)"/>

#11


我忘了告诉大家了还有一种情况也不行,就是,654321。大家的代码我都测试了,都没有处理这种情况!怪我没有说清楚!

#12


js判断不能输入连续6个数字!在线等
我上面不是有么


function test(s) {
    if (!/^\d{6}$/.test(s)) return false; // 不是6位数字
    if (/^(\d)\1+$/.test(s)) return false;  // 全一样
    
    var str = s.replace(/\d/g, function($0, pos) {
        return parseInt($0)-pos;
    });
    if (/^(\d)\1+$/.test(str)) return false;  // 顺增
    
    str = s.replace(/\d/g, function($0, pos) {
        return parseInt($0)+pos;
    });
    if (/^(\d)\1+$/.test(str)) return false;  // 顺减
    return true;
}
alert(test("654321"))

#13



<html>
<title></title>
<script type="text/javascript">
window.onload = function(){
  document.getElementById("test").onclick = function(){
    var passwd = document.getElementById("passwd");
    var value = passwd.value;
    var reVal = /^\d{6}$/;
    if(!reVal.test(value)){
      alert("密码必须为六个数字!");
      passwd.select();
      passwd.focus();
      return;
    }
    var i = 2;
    while(i<value.length){
      if(parseInt(value.substr(i,1)) - parseInt(value.substr(i-1,1)) != parseInt(value.substr(i-1,1)) - parseInt(value.substr(i-2,1))){
        return;
      }
      i++;
    }
    alert("密码不能太简单!");
    passwd.select();
    passwd.focus();
    return;
  }
}
</script>
<head>
</head>
<body>
    <input type="password" id="passwd" />
    <input type="button" value="test password" id="test" />
</body>
</html>

#14


indexof 

#15


谢谢大家的帮助,问题已经解决。wcwtitxu方法很好!谢谢!

#1


用正则不更简单吗 "^\\d{6}$"

#2


你这个正则不行!请测试一下!

#3


var str = document.getElementById("sentence").value;
var flag = true;
for (i = 0; i < str.length - 1; i++) {
if (str.charAt(i) != str.charAt(i + 1)) {
flag = false;
break;
}
}
if (flag == true) {
alert("error");
} else {
alert("right");
}

#4


楼主看看行不

#5


if (str.search("[0-9]{6}") == -1) {
return;
}
这个加上判断是不是6位的数字

#6


var r = new RegExp(/\d{6}/);
var s ='123456';
var a = s.match(/\d/g);
var is = false;
if(!r.test(s))
{
    alert('格式错误!');
}else
{
for(var i=0,len=a.length-1;i<len;i++){
    if(parseInt(a[i])+1!=a[i+1])
    {    
        is = true;
        break;
    }
}
if(!is)
 alert('不能连续!');
}

#7



function check(str){
    var f = parseInt(str.charAt(0));
    return /\d{6}/.test(str) && (/^(\d)\1{5}$/.test(str) || str == str.replace(/\d/g, function(v, i){return f+i;}));
}
var str = "Z123456", str2 = "111111", str3="123457";
alert(check(str));
alert(check(str2));
alert(check(str3));

#8


引用 3 楼 bird_fro 的回复:
var str = document.getElementById("sentence").value;
var flag = true;
for (i = 0; i < str.length - 1; i++) {
if (str.charAt(i) != str.charAt(i + 1)) {
flag = false;
break;
}
}
if (flag == true) {
alert("error");
} else {
alert("right");
}

UP

#9



function test(s) {
if (!/^\d{6}$/.test(s)) return false; // 不是6位数字
if (/^(\d)\1+$/.test(s)) return false;  // 全一样

var str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)-pos;
});
if (/^(\d)\1+$/.test(str)) return false;  // 顺增

str = s.replace(/\d/g, function($0, pos) {
return parseInt($0)+pos;
});
if (/^(\d)\1+$/.test(str)) return false;  // 顺减
return true;
}

#10



<SCRIPT LANGUAGE="JavaScript">
  <!--
function check(v){
if(/^[0-9]{6}$/.test(v)){
var prev=-1,r=0;
v.replace(/(\d{1})/g,function($,$1,i){
if(parseInt(prev)+1==$1)r++
prev=$1
})
if(r==v.length-1)alert('数字不能连续')
else alert('ok');
return;
}
alert('必需为数字!且长度为6');
}
  //-->
  </SCRIPT>

  <input type="text" id="aaaa"/><input type="button" value="check" onclick="check(document.getElementById('aaaa').value)"/>

#11


我忘了告诉大家了还有一种情况也不行,就是,654321。大家的代码我都测试了,都没有处理这种情况!怪我没有说清楚!

#12


js判断不能输入连续6个数字!在线等
我上面不是有么


function test(s) {
    if (!/^\d{6}$/.test(s)) return false; // 不是6位数字
    if (/^(\d)\1+$/.test(s)) return false;  // 全一样
    
    var str = s.replace(/\d/g, function($0, pos) {
        return parseInt($0)-pos;
    });
    if (/^(\d)\1+$/.test(str)) return false;  // 顺增
    
    str = s.replace(/\d/g, function($0, pos) {
        return parseInt($0)+pos;
    });
    if (/^(\d)\1+$/.test(str)) return false;  // 顺减
    return true;
}
alert(test("654321"))

#13



<html>
<title></title>
<script type="text/javascript">
window.onload = function(){
  document.getElementById("test").onclick = function(){
    var passwd = document.getElementById("passwd");
    var value = passwd.value;
    var reVal = /^\d{6}$/;
    if(!reVal.test(value)){
      alert("密码必须为六个数字!");
      passwd.select();
      passwd.focus();
      return;
    }
    var i = 2;
    while(i<value.length){
      if(parseInt(value.substr(i,1)) - parseInt(value.substr(i-1,1)) != parseInt(value.substr(i-1,1)) - parseInt(value.substr(i-2,1))){
        return;
      }
      i++;
    }
    alert("密码不能太简单!");
    passwd.select();
    passwd.focus();
    return;
  }
}
</script>
<head>
</head>
<body>
    <input type="password" id="passwd" />
    <input type="button" value="test password" id="test" />
</body>
</html>

#14


indexof 

#15


谢谢大家的帮助,问题已经解决。wcwtitxu方法很好!谢谢!